Pewnego dnia budzisz się tylko, aby znaleźć się w tablicy. Próbujesz po prostu wyjść, biorąc jednocześnie jeden indeks, ale wydaje się, że istnieją inne zasady:
Tablica jest całkowicie wypełniona liczbami naturalnymi.
- Jeśli znajdziesz się w indeksie
n
, przejdź do indeksuarray[n]
, z wyjątkiem: - Jeśli znajdziesz się w indeksie,
n
który jest liczbą pierwszą,array[n]
cofnij się
Przykład: Zaczynasz od indeksu 4
w tej tablicy (indeks początkowy to 0):
array = [1,4,5,6,8,10,14,15,2,2,4,5,7];
-----------------^ you are here
Ponieważ wartość pola, w którym się znajdujesz 8
, to przejdziesz do indeksu 8
jako pierwszy krok. Pole, na którym wylądujesz, zawiera wartość 2
. Następnie przejdź do indeksu 2
jako drugi krok. Podobnie 2
jak liczba pierwsza, cofasz się o 5 kroków, co jest twoim trzecim krokiem. Ponieważ nie ma indeksu -3
, udało ci się uciec z tablicy w 3 krokach.
Twoim zadaniem jest:
Aby napisać program lub funkcję, która akceptuje tablicę i indeks początkowy jako parametr, i wyświetla liczbę kroków do ucieczki z tablicy. Jeśli nie możesz uciec przed tablicą (np. [2,0,2]
Przy pomocy start-index 2
=> ciągle przechodzisz od indeksu 2
do 0
), wypisz wartość fałszowania. Możesz użyć indeksowania opartego na jednym lub zerowania, ale określ, którego używasz.
Przypadki testowe
Wkład: [2,5,6,8,1,2,3], 3
Wydajność: 1
Wkład: [2, 0, 2], 2
Wydajność: false
Wkład: [14,1,2,5,1,3,51,5,12,3,4,41,15,4,12,243,51,2,14,51,12,11], 5
;
Wydajność: 6
Najkrótsza odpowiedź wygrywa.