Invece di essere un abile guerriero in grado di uccidere Idra (vedi qui e qui ), questa volta sei un guerriero che non ha alcuna conoscenza preliminare su come uccidere una o quali armi usare contro la creatura.
In questo problema, ogni volta che tagli una sola testa, due cresceranno nello stesso posto. Dato che non hai il meccanismo per tagliare molte teste contemporaneamente, il numero di teste aumenterà solo. In questo caso, la nostra Hydra può iniziare con N(N ⩾ 1) teste. Chiamiamo il primo incontro una generazione e rappresenteremo le teste della prima generazione come 0 , le teste create dopo il primo colpo come 1 e così via.
Ingresso
Ti verrà dato un numero intero che Nrappresenta quante teste inizialmente ha l'Hydra e un elenco di dimensioni Ncontenente in quale indice (negli esempi userò il formato 0-indicizzato) ti taglierà una testa. Puoi sempre presumere che gli indici indicati siano validi - ricorda che l'elenco (cioè: le teste) crescerà man mano che tagli le teste.
Esempio
Input : N = 4e[0,4,2,5]
Generazione 0 - Indice di attacco 0
0 0 0 0 => 1 1 0 0 0
^ ^ ^
Generazione 1 - Indice di attacco 4
1 1 0 0 0 => 1 1 0 0 2 2
^ ^ ^
Generazione 2 - Indice di attacco 2
1 1 0 0 2 2 => 1 1 3 3 0 2 2
^ ^ ^
Generazione 3 - Indice di attacco 5
1 1 3 3 0 2 2 => 1 1 3 3 0 4 4 2
^ ^ ^
Ultima generazione
1 1 3 3 0 4 4 2
Come puoi vedere, gli indici forniti sono correlati all'elenco della generazione precedente.
Produzione
È necessario produrre l'ultima generazione.
Casi 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]
Questo è code-golf, quindi vince la risposta più breve in byte!
N(...) e un elenco di dimensioniN (Ma ho perso anche quella parte quando ho letto per la prima volta la sfida.) Pertanto, Nè semplicemente inutile.
Ndall'input dato che è "implicitamente" dato come dimensione dell'array. Tuttavia, ho pensato che le soluzioni avrebbero salvato i byte dando Ninvece di affidarsi array.size()o simili.