히드라 를 죽일 수있는 숙련 된 전사가 아니라 ( 여기 및 여기 참조 ), 이번에는 당신이 생물을 상대로 사용할 무기 나 무기를 죽이는 방법에 대한 사전 지식이없는 전사입니다.
이 문제에서 단일 헤드를자를 때마다 같은 장소에서 두 개가 자랍니다. 많은 헤드를 동시에 차단할 수있는 메커니즘이 없기 때문에 헤드 수가 늘어납니다. 이 경우 Hydra는 N(N ⩾ 1) 헤드로 시작할 수 있습니다 . 첫 번째 조우를 세대라고 부르고 첫 번째 세대 의 헤드 를 0으로 , 첫 번째 타격 후 생성 된 헤드를 1로 표현 합니다.
입력
NHydra가 처음 가지고있는 헤드 수와 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()하거나 이와 유사한 방식으로 바이트를 절약 할 수 있다고 생각했습니다 .