Mam sterowaną korbą pozytywkę, która może odtwarzać serię czterech dźwięków. Kiedy obracam korbą, wyrywa ona jeden z czterech strun, w zależności od położenia korby i kierunku obrotu. Kiedy korba jest skierowana na północ, skrzynia (z jej łańcuchami ponumerowanymi od 1 do 4) wygląda następująco:
1 | 2
|
O
4 3
Stamtąd mogę obrócić korbą w kierunku zgodnym z ruchem wskazówek zegara, aby zerwać sznur nr 2 i skierować korbę na wschód:
1 2
O---
4 3
Alternatywnie, mógłbym również obrócić korbą w kierunku przeciwnym do ruchu wskazówek zegara z północy, aby zagrać na strunie nr 1 i zakończyć korbą skierowaną na zachód:
1 2
---O
4 3
Zatem w danym momencie skrzynka może odtwarzać jedną z dwóch nut: następną nutę dostępną w kierunku zgodnym z ruchem wskazówek zegara lub następną nutę w kierunku przeciwnym do ruchu wskazówek zegara.
Wyzwanie
Twoim wyzwaniem jest, aby napisać program lub funkcję, która akceptuje niepusty ciąg wartości Note (tj cyframi 1
pośrednictwem 4
) i określić, czy jest to możliwe, aby zagrać tę sekwencję nut na polu muzycznym. Podaj wynik zgodny z prawdą lub fałszem, aby wskazać grywalność lub brak możliwości gry na danych wejściowych.
Niektóre uwagi:
Dane wejściowe nie zakładają początkowej pozycji początkowej. Dane wejściowe
214
(rozpoczynające się na wschód i poruszające się ściśle przeciwnie do ruchu wskazówek zegara) i234
(rozpoczynające się na północ i poruszające się ściśle zgodnie z ruchem wskazówek zegara) i oba są ważne.Korba może się swobodnie poruszać w dowolnym kierunku po każdej nucie. Seria tej samej nuty jest możliwa (np.
33333
) Poprzez przesuwanie się w przód i w tył po jednym strunie. Serię1221441
można doskonale grać (zaczynając na zachód, przesuwając dwa kroki zgodnie z ruchem wskazówek zegara, następnie trzy kroki przeciwnie do ruchu wskazówek zegara, a następnie dwa kroki zgodnie z ruchem wskazówek zegara).
Próbki
Niektóre true
przypadki:
1
1234
1221
3333
143332
22234
2234
22214
1221441
41233
Niektóre false
przypadki:
13 (note 3 is never available after note 1)
1224 (after `122`, the crank must be north, so 4 is not playable)
121 (after `12` the crank is east; 1 is not playable)
12221 (as above, after `1222` the crank is east)
43221