Atenție! Aceasta este o versiune veche a paginii., scrisă la 2014-01-20 15:51:51.000.
Revizia anterioară   Revizia următoare  

Fișierul intrare/ieșire partitura.in, partitura.out Sursă Olimpiada pe scoala 2014
Autor Cristian Frâncu Adăugată de avatar francu Cristian Frâncu francu
Timp de execuție pe test 0.05 sec Limită de memorie 2048 KB
Scorul tău N/A Dificultate stea de rating de tip fullstea de rating de tip fullstea de rating de tip emptystea de rating de tip emptystea de rating de tip empty
open book Poți vedea testele pentru această problemă accesând atașamentele .

Partitura (clasa a 5-a)

Amadeus este un mic geniu muzical. El se uită pe o partitură cu note și își dă seama instantaneu de cheia partiturii, de fugă și gamă. Tatăl său este, însă, un om foarte strict și vrea să il verifice, drept care vă roagă pe voi să îl ajutați.

Dar înainte de aceasta să definim termenii muzicali:

  • Partitura este un șir de note și pauze. Notele sînt numere naturale nenule, iar pauzele sînt reprezentate cu numărul zero. De exemplu partitura 2 5 7 10 7 3 0 3 5 2 0 0 8 10 13 are 12 note separate de pauze.
  • Cheia partiturii este media tuturor notelor. Dacă media nu este număr natural se va lua partea întreagă. De exemplu, în partitura anterioară, suma notelor este 75. Împărțind-o la numărul de note, 12, obținem media 6.
  • Fuga se calculează astfel: pornind de la prima notă, cîtă vreme notele cresc, vom aduna diferențele între note consecutive în secvență, obținînd un interval de creștere C1. Apoi partitura descrește și vom considera iar diferențele între note consecutive în secvență obținînd un interval de descreștere D1. Intervalul de fugă este diferența în valoare absolută dintre suma intervalelor de creștere și a celor de descreștere: I = abs( [C1 + C2 + ... + Ck] – [D1 + D2 + ... + Dm] ). Pe exemplul nostru vom avea trei intervale de creștere și două de descreștere:
    • 2 5 7 10 are creșterea (5-2) + (7-5) + (10-7) = 8
    • 3 5 are creșterea (5-3) = 2
    • 8 10 13 are creșterea (10-8) + (13-10) = 5
    • 10 7 3 cu descreșterea (10-7) + (7-3) = 7
    • 5 2 cu descreșterea (5-2) = 3
      Fuga partiturii este suma creșterilor minus suma descreșterilor: (8+2+5) – (7+3) = 5
  • Gama partiturii se definește astfel: un acord major este o secvență de trei note la rînd (A B C) cu proprietățile că A + 3 = B și B + 2 = C. Similar, un acord minor este o secvență de trei note la rînd (A B C) cu proprietățile că A + 2 = B și B + 3 = C. Dacă melodia are mai multe acorduri majore decît minore spunem că gama ei este majoră, altfel spunem că este minoră. În exemplul nostru vom avea un acord major, (2 5 7), precum și două acorduri minore, (5 7 10) și (8 10 13). Deoarece nu avem mai multe acorduri majore gama melodiei este minoră.

Cerință

Dată o partitură determinați cheia, fuga și gama.

Date de intrare

Fișierul de intrare partitura.in va conține pe prima linie N, numărul de numere care descriu partitura (note și pauze). Pe a doua linie va conține N numere cu semnificația de mai sus (note și pauze).

Date de ieșire

În fișierul de ieșire partitura.out se va scrie răspunsul la fiecare cerință, pe linii separate. Astfel, pe prima linie seva scrie cheia, pe a doua fuga și pe a treia gama partiturii. Gama va fi unul din cuvintele majora sau minora.

Restricții

  • 1 ≤ N ≤ 10000
  • Notele sînt valori întregi între 1 și 250
  • Oricare două note consecutive în secvență sînt diferite (nu putem avea 7 7 în partitură, de exemplu)
  • Partitura conține cel puțin o notă
  • Pauzele sînt reprezentate prin numere 0

Exemplu

partitura.in partitura.out
15
2 5 7 10 7 3 0 3 5 2 0 0 8 10 13
6
5
minora

Trebuie să te autentifici pentru a trimite soluții. Click aici

Indicii de rezolvare

Arată 2 categorii