Zamiast być zręcznym wojownikiem zdolnym do zabijania Hydr (patrz tutaj i tutaj ), tym razem jesteś wojownikiem, który nie ma wcześniejszej wiedzy o tym, jak zabić jedną lub jaką broń użyć przeciwko stworzeniu.
W tym problemie, ilekroć odetniesz pojedynczą głowę, dwie będą rosły w tym samym miejscu. Ponieważ nie masz mechanizmu odcinania wielu głowic jednocześnie, liczba głowic będzie tylko rosła. W takim przypadku nasza Hydra może zacząć od N(N ⩾ 1) głów. Nazwijmy pierwsze spotkanie pokoleniem, a my reprezentujemy głowy pierwszej generacji jako 0 , głowy utworzone po pierwszym uderzeniu jako 1 i tak dalej.
Wejście
Otrzymasz liczbę całkowitą N reprezentującą, ile głów Hydra początkowo ma, oraz listę rozmiarów Nzawierającą, w którym indeksie (w przykładach użyję formatu 0-indeksowanego) odetniesz głowę. Zawsze możesz założyć, że podane indeksy są prawidłowe - pamiętaj, że lista (tj. Główki) będzie rosła w miarę odcinania głów.
Przykład
Wejście :N = 4 i[0,4,2,5]
Generacja 0 - Indeks ataku 0
0 0 0 0 => 1 1 0 0 0
^ ^ ^
Generacja 1 - Indeks ataku 4
1 1 0 0 0 => 1 1 0 0 2 2
^ ^ ^
Generacja 2 - Indeks ataku 2
1 1 0 0 2 2 => 1 1 3 3 0 2 2
^ ^ ^
Generacja 3 - Indeks ataku 5
1 1 3 3 0 2 2 => 1 1 3 3 0 4 4 2
^ ^ ^
Ostatnie pokolenie
1 1 3 3 0 4 4 2
Jak widać, podane indeksy są powiązane z listą poprzedniej generacji.
Wynik
Jesteś zobowiązany do wyjścia ostatniej generacji.
Przypadki testowe
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]
To jest golf golfowy, więc wygrywa najkrótsza odpowiedź w bajtach!
N(...) i listę rozmiarówN (Ale tęskniłem również za tą częścią, gdy czytałem po raz pierwszy wyzwanie.) Dlatego Njest po prostu bezużyteczne.
Ndanych wejściowych, ponieważ są one „domyślnie” podane jako rozmiar tablicy. Myślałem jednak, że rozwiązania pozwolą zaoszczędzić bajty, podając Nzamiast polegać na nich array.size()lub podobnie.