Anstatt ein geschickter Krieger zu sein, der Hydras töten kann (siehe hier und hier ), bist du diesmal ein Krieger, der keine Vorkenntnisse darüber hat, wie man eine oder welche Waffen gegen die Kreatur verwendet.
Bei diesem Problem wachsen immer dann, wenn Sie einen einzigen Kopf abschneiden, zwei an derselben Stelle. Da Sie nicht den Mechanismus haben, um viele Köpfe gleichzeitig abzuschneiden, wird die Anzahl der Köpfe nur wachsen. In diesem Fall kann unsere Hydra mit N(N ⩾ 1) Köpfen beginnen. Nennen wir die erste Begegnung eine Generation und wir werden die Köpfe der ersten Generation als 0 darstellen , die Köpfe, die nach dem ersten Schlag erzeugt wurden, als 1 und so weiter.
Eingang
Sie erhalten eine Ganzzahl, Ndie angibt , wie viele Köpfe die Hydra anfangs hat, und eine Liste der Größen, die Nenthält, in welchem Index (in den Beispielen verwende ich das 0-indizierte Format) Sie einen Kopf abschneiden. Sie können immer davon ausgehen, dass die angegebenen Indizes gültig sind - denken Sie daran, dass die Liste (dh die Köpfe) wächst, wenn Sie die Köpfe abschneiden.
Beispiel
Eingabe : N = 4und[0,4,2,5]
Generation 0 - Angriffsindex 0
0 0 0 0 => 1 1 0 0 0
^ ^ ^
Generation 1 - Angriffsindex 4
1 1 0 0 0 => 1 1 0 0 2 2
^ ^ ^
Generation 2 - Angriffsindex 2
1 1 0 0 2 2 => 1 1 3 3 0 2 2
^ ^ ^
Generation 3 - Angriffsindex 5
1 1 3 3 0 2 2 => 1 1 3 3 0 4 4 2
^ ^ ^
Letzte Generation
1 1 3 3 0 4 4 2
Wie Sie sehen, beziehen sich die angegebenen Indizes auf die Liste der vorherigen Generation.
Ausgabe
Sie müssen die letzte Generation ausgeben.
Testfälle
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]
Das ist Code-Golf, also gewinnt die kürzeste Antwort in Bytes!
N(...) und eine Liste mit der GrößeN (aber auch diesen Teil habe ich beim ersten Lesen übersehen die herausforderung.) ist daher Neinfach unbrauchbar.
Ndie Eingabe tatsächlich zu entfernen, da sie "implizit" als Array-Größe angegeben wird. Ich dachte jedoch, dass die Lösungen Bytes einsparen würden, indem sie geben, Nanstatt sich auf array.size()oder ähnliches zu verlassen.