| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 3 초 | 1024 MB | 97 | 51 | 36 | 50.000% |
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 kahehää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 täisarv N (0 ≤ N ≤ 1 000 000) — kummaski hääles esinevate nootide arv. Järgmisel N real on igauhel kaks tühikuga eraldatud täisarvu Ai ja Bi, vastavalt esimeses ja teises hääles kõlavate nootide helikõrgused (−100 ≤ Bi ≤ Ai ≤ 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 M eri noodipaari vahel, väljastada faili M rida, igaühele täisarv i — ühe paralleelkvindi esimese noodi järjekorranumber (1 ≤ i < N). Järjekorranumbrid väljastada kasvavas järjekorras.
5 7 0 10 -2 14 -5 12 -7 7 0
3 4
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
POLE
2 7 0 7 0
POLE
Olympiad > Estonian Informatics Olympiad > 2014-15 > Preliminary Round > Basic 1번