| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 7 초 | 1024 MB | 85 | 35 | 23 | 34.328% |
Klassikalise harmooniateooria kohaselt tuleks mitmehäälset seadet kirjutades vältida niinimetatud paralleelkvinte, see tähendab olukorda, kus kahe hääle vaheline kaugus pooltoonides annab jagamisel kaheteistkümnega jäägi seitse, seejärel mõlemas hääles helikõrgus muutub ning nende vaheline kaugus pooltoonides annab jälle kaheteistkümnega jagades jäägi seitse.1
Paralleelkvindid esinevad ainult siis, kui mõlemas hääles helikõrgus muutub. See tähendab, et kui kahel järjestikusel noodil annab kahe hääle vaheline kaugus 12-ga jagades jäägi 7, kuid kas ühes või kummaski hääles helikõrgus ei muutu, siis ei ole tegemist paralleelkvintidega.
Kirjutada programm, mis tuvastab K-häälses seades paralleelkvintide olemasolu.
Helikõrgusi esitatakse sisendfailis täisarvudena. Arv 0 tähistab esimese oktavi C nooti ning positiivne täisarv k sellest k pooltooni võrra kõrgemat ja negatiivne täisarv vastavalt madalamat heli. Näiteks arv 4 vastab esimese oktavi E noodile ja arv −3 väikse oktavi A noodile.2
1 Märkus muusikateooriast rohkem huvitatuile: vahel loetakse paralleelkvintideks mitte ainult kaht järjestikust puhast kvinti, vaid ka näiteks järjestikuseid puhast ja vähendatud kvinti (vastavalt seitse ja kuus pooltooni); selles ülesandes loeme paralleelkvintideks vaid kaht järjestikust puhast kvinti.
2 Ülesande lahendamiseks ei ole oluline nootide nimetusi mõista.
Tekstifaili esimesel real on kaks tühikutega eraldatud täisarvu N ja K (0 ≤ N ≤ 100 000, 2 ≤ K ≤ 10) — igas hääles esinevate nootide arv N ja häälte arv K. Järgmisel N real on igauhel K tühikutega eraldatud täisarvu A1,i . . . AK,i, kus Aj,i on i. noodi kõrgus j. hääles (−100 ≤ AK,i ≤ . . . ≤ A1,i ≤ 100, i ∈ 1 . . . N). Ühel real antud noodid kõlavad samaaegselt ning järjestikustel ridadel olevad noodid kõlavad vahetult üksteise järel.
Kui seades paralleelkvinte ei esine, väljastada tekstifaili ainsale reale sõna POLE. Kui seades esinevad paralleelkvindid, toimida järgmiselt. Kui paralleelkvindid tekivad noodiridade i ja i + 1 vahel häälte s ja t vahel (s < t), väljastada faili eraldi reale kolm tühikutega eraldatud täisarvu i, s ja t. Väljastada kõik palas esinevad paralleelkvindid i kasvamise järjekorras. Kui kahel väljundfaili real on sama i, siis järjestada nad s kasvamise järjekorras, ning kui kahel real on sama i ja s, siis järjestada nad t kasvamise järjekorras.
5 2 7 0 10 -2 14 -5 12 -7 7 0
3 1 2 4 1 2
Väljund näitab, et paralleelkvindid esinevad kahes kohas. Esimesel noodil on kahe hääle vahe 7 pooltooni — seega kui järgmisel noodil oleks nende vahe samuti 7 pooltooni, oleks tegu paralleelkvintidega. Teisel noodil on aga vahe 12 pooltooni ning seetõttu paralleelkvinte pole. Kolmandal noodil on häälte vahe 19 pooltooni, mis annab kaheteistkümnega jagades jäägi 7. Sama kehtib neljanda noodi kohta — tegu on paralleelkvintidega kolmanda ja neljanda noodi vahel, seda väljendab arv 3 väljundi esimesel real. Viiendal noodil on häälte vahe samuti 7 pooltooni, seega on tegu jällegi paralleelkvintidega neljanda ja viienda noodi vahel, seda näitab arv 4 väljundi teisel real.
0 10
POLE
3 3 13 7 0 13 6 -1 10 3 -4
1 2 3 2 1 2 2 2 3
2 2 7 0 7 0
POLE