Вы являетесь сотрудником в тазобедренном новом продуктовом магазине Половина еды, и это за день до Дня благодарения Рождество Пасха. Поскольку в магазине будет полно покупателей, которые спешат за продуктами, в магазине нужен менеджер по дорожному движению, который отправит всех по соответствующим линиям. Будучи ленивым, вы хотели бы автоматизировать это так, чтобы вы могли пойти в гастроном, пока все не взяли всю ветчину индейки, что угодно. Тем не менее, все, что у вас есть с собой, - это ваш телефон, и написание длинных программ для него - настоящая боль, поэтому вам нужно испытать свои навыки игры в ниндзя -гольф .
Вызов
Давайте представим продуктовый магазин на двухмерной сетке. Вот пример сетки для анализа:
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
Это код-гольф , поэтому выигрывает самый короткий код.