당신은 새로운 식료품 점 Half Foods의 직원이며 추수 감사절 크리스마스 부활절 전날 입니다. 가게는 식료품을 얻기 위해 서두르는 고객들로 포장 될 것이므로, 가게는 모든 사람들을 적절한 라인으로 보내려면 교통 관리자가 필요합니다. 게으 르기 때문에 모든 사람이 칠면조 햄을 먹기 전에 델리에 갈 수 있도록 이것을 자동화하고 싶습니다 . 그러나 휴대 전화 만 있으면 긴 프로그램을 코딩하는 데 어려움이 있으므로 닌자 코드 골프 기술을 연마해야합니다.
도전
식료품 점을 2 차원 격자로 시각화 해 봅시다. 다음은 해부 할 샘플 그리드입니다.
e
s
s
s
Y
# # #s #
#s # #s #
#s # #s #
#s #s #s #
#3 #1 #4 #
x x x x
그리드 e
는 상점의 나머지 부분에 대한 "출구"를 나타내는로 시작합니다 . 모든 세대에서 그리드의 모든 콘센트는 s
바로 아래에 쇼핑객 ( )을 생성 합니다. 쇼핑객은 고객에게 도달 할 때까지 각 세대마다 아래로 이동합니다 ( Y
). 구매자가 귀하와 같은 행에 도달하면, 최소한의 구매자가있는 줄의 시작 부분으로 구매자를 순간 이동해야합니다. 구매자가 행으로 이동할 때 즉시 행으로 이동합니다 Y
. 사이에 세대가 없습니다. 선은 #
s 로 표시됩니다. s 뒤의 열 #
은 선입니다. 쇼핑객은 줄 끝까지 내려갑니다 (출구로 표시됩니다x
) 한 후 임의의 숫자로 설정 사이 1
와5
. 각 세대마다, 당신은 쇼핑객에 1
도달 할 때 마다 쇼핑객을 감소시켜야합니다 – 쇼핑객이에 도달하면0
확인을 마치고 가게를 떠납니다.
이와 같은 그리드가 입력되면 차세대 식료품 점을 출력하십시오 (모든 쇼핑객을 동시에 아래로 이동하고 쇼핑객을 리디렉션하고 완료되면 고객을 떠나십시오).
견본
입력:
e
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
산출:
e
s
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
입력:
e
s
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
산출
e
s
Y
#s # # #
# # # #
# # # #
# # # #
# # # #
x x x x
입력:
e
Y
# # # #
# # # #
# # # #
#s # # #
# # # #
x x x x
(가능한) 출력 :
e
s
Y
# # # #
# # # #
# # # #
# # # #
#3 # # #
x x x x
입력:
e
s
Y
# # # #
# # # #
# # # #
# # # #
#3 # # #
x x x x
산출:
e
s
Y
# #s # #
# # # #
# # # #
# # # #
#2 # # #
x x x x
입력:
e
Y
# # # #
# # # #
# # # #
# # # #
#1 # # #
x x x x
산출:
e
s
Y
# # # #
# # # #
# # # #
# # # #
# # # #
x x x x
이것은 code-golf 이므로 가장 짧은 코드가 승리합니다.