ヒドラスを殺すことができる熟練した戦士であるのではなく(こちらとこちらをご覧ください)、今度はあなたは戦士を殺す方法やクリーチャーに対してどの武器を使用するかについての予備知識がありません。
この問題では、1つの頭を切り落とすたびに、同じ場所で2つ成長します。多数のヘッドを同時に切断するメカニズムがないため、ヘッドの数は増えるだけです。この場合、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()または類似の代わりに与えることでバイトを節約すると考えました。