Замість того, щоб бути вмілим воїном, здатним вбити гідрів (див. Тут і тут ), на цей раз ви - воїн, який не має попередніх знань, як вбити одну чи яку зброю використовувати проти створіння.
У цій проблемі щоразу, коли ви відріжете одну голову, дві будуть рости в одному місці. Оскільки у вас немає механізму одночасно відрізати багато головок, кількість голів буде лише зростати. У цьому випадку наша гідра може починатися з 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()чи подібні.