Au lieu d'être un guerrier habile capable de tuer des hydres (voir ici et ici ), cette fois, vous êtes un guerrier qui n'a aucune connaissance préalable de la façon de tuer une ou des armes à utiliser contre la créature.
Dans ce problème, chaque fois que vous coupez une seule tête, deux poussent au même endroit. Puisque vous n'avez pas le mécanisme pour couper plusieurs têtes simultanément, le nombre de têtes ne fera qu'augmenter. Dans ce cas, notre Hydra peut commencer avec N(N ⩾ 1) têtes. Appelons la première rencontre une génération et nous représenterons les têtes de la première génération comme 0 , les têtes créées après le premier coup comme 1 , et ainsi de suite.
Contribution
Vous recevrez un entier Nreprésentant le nombre de têtes que l'Hydra a initialement et une liste de taille Ncontenant dans quel index (dans les exemples j'utiliserai le format indexé 0) vous couperez une tête. Vous pouvez toujours supposer que les index donnés sont valides - rappelez-vous que la liste (c'est-à-dire: les têtes) augmentera à mesure que vous couperez les têtes.
Exemple
Entrée : N = 4et[0,4,2,5]
Génération 0 - Indice d'attaque 0
0 0 0 0 => 1 1 0 0 0
^ ^ ^
Génération 1 - Indice d'attaque 4
1 1 0 0 0 => 1 1 0 0 2 2
^ ^ ^
Génération 2 - Indice d'attaque 2
1 1 0 0 2 2 => 1 1 3 3 0 2 2
^ ^ ^
Génération 3 - Indice d'attaque 5
1 1 3 3 0 2 2 => 1 1 3 3 0 4 4 2
^ ^ ^
La dernière génération
1 1 3 3 0 4 4 2
Comme vous pouvez le voir, les index donnés sont liés à la liste de la génération précédente.
Production
Vous devez sortir la dernière génération.
Cas de test
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]
C'est le code-golf, donc la réponse la plus courte en octets gagne!
N(...) et une liste de tailleN (Mais j'ai aussi raté cette partie lors de ma première lecture) le défi.) Par conséquent, Nest tout simplement inutile.
Nl'entrée car elle est "implicitement" donnée comme la taille du tableau. Cependant, je pensais que les solutions permettraient d'économiser des octets en donnant Nau lieu de s'appuyer sur array.size()ou similaire.