Вместо того, чтобы быть умелым воином, способным убить Гидр (см. Здесь и здесь ), на этот раз вы - воин, который не имеет предварительных знаний о том, как убить одно или какое оружие использовать против существа.
В этой задаче, когда вы отсекаете одну голову, две будут расти в одном месте. Поскольку у вас нет механизма, позволяющего одновременно отрезать много голов, количество голов будет только расти. В этом случае наша Гидра может начинаться с N(N ⩾ 1) голов. Давайте назовем первое столкновение поколением, и мы будем представлять головы первого поколения как 0 , головы, созданные после первого удара, как 1 , и так далее.
вход
Вам будет дано целое число, Nпредставляющее, сколько голов Hydra изначально имеет, и список размеров, Nв котором указывается, в каком индексе (в примерах я буду использовать 0-индексированный формат) вы отрежете голову. Вы всегда можете предположить, что данные индексы действительны - помните, что список (то есть: головы) будет расти, когда вы отсекаете головы.
пример
Вход : N = 4и[0,4,2,5]
Поколение 0 - Индекс атаки 0
0 0 0 0 => 1 1 0 0 0
^ ^ ^
Поколение 1 - Индекс атаки 4
1 1 0 0 0 => 1 1 0 0 2 2
^ ^ ^
Поколение 2 - Индекс атаки 2
1 1 0 0 2 2 => 1 1 3 3 0 2 2
^ ^ ^
Поколение 3 - Индекс атаки 5
1 1 3 3 0 2 2 => 1 1 3 3 0 4 4 2
^ ^ ^
Последнее поколение
1 1 3 3 0 4 4 2
Как видите, приведенные индексы относятся к списку предыдущего поколения.
Выход
Вам необходимо вывести последнее поколение.
Контрольные примеры
N = 1 and [0] => [1,1]
N = 2 and [0,0] => [2,2,1,0]
N = 2 and [0,1] => [1,2,2,0]
N = 2 and [1,0] => [2,2,1,1]
N = 2 and [1,1] => [0,2,2,1]
N = 4 and [0,4,2,5] => [1,1,3,3,0,4,4,2]
N = 6 and [0,0,0,0,0,0] => [6, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0]
N = 6 and [5,6,7,8,9,10] => [0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 6]
N = 10 and [1,7,3,12,9,0,15,2,2,10] => [6, 6, 9, 9, 8, 1, 3, 3, 0, 0, 10, 10, 2, 5, 5, 0, 0, 4, 7, 7]
Это код-гольф, поэтому выигрывает самый короткий ответ в байтах!
N(...) и список размеровN (но я тоже пропустил эту часть, когда впервые прочитал вызов.) Поэтому Nпросто бесполезен.
Nиз входных данных, так как они «неявно» задаются как размер массива. Тем не менее, я думал, что решения будут экономить байты, предоставляя Nвместо того, чтобы полагаться на них array.size()или подобные.