Pagini recente »
Diferențe pentru problema/economii între reviziile 5 și 6
|
Diferențe pentru problema/partitura între reviziile 17 și 18
|
Diferențe pentru problema/partitura între reviziile 57 și 59
|
Diferențe pentru problema/paranteze3 între reviziile 2 și 6
|
Diferențe pentru problema/partitura între reviziile 27 și 28
Nu există diferențe între titluri.
Diferențe între conținut:
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.
* *Înălțimea* partiturii este suma tuturor notelor. De exemplu, în partitura anterioară, suma notelor este 75.
* *Partitura* este un șir de note și pauze. Notele sînt numere naturale strict mai mari ca unu, iar pauzele sînt reprezentate cu numărul unu. De exemplu partitura *2 5 7 10 7 3 1 3 5 2 1 1 8 10 13* are 12 note separate de pauze.
* *Înălțimea* partiturii este suma tuturor notelor. De exemplu, în partitura anterioară, suma notelor este 75 (pauzele nu se adună).
* *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 C[~1~]. Apoi partitura descrește și vom considera iar diferențele între note consecutive în secvență obținînd un interval de descreștere D[~1~]. Intervalul de fugă este diferența în valoare absolută dintre suma intervalelor de creștere și a celor de descreștere: I = abs( [C[~1~] + C[~2~] + ... + C[~k~]] - [D[~1~] + D[~2~] + ... + D[~m~]] ). 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
** 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. În exemplul nostru vom avea un acord major, (2 5 7), precum și două acorduri minore, (5 7 10) și (8 10 13).
h2. Cerință
Dată o partitură determinați *înălțimea*, *fuga* și *gama*.
h2. 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 se va scrie *înălțimea*, pe a doua *fuga* și pe a treia două numere: numărul de acorduri majore și numărul de acorduri minore, separate prin spațiu.
În fișierul de ieșire $partitura.out$ se va scrie răspunsul la fiecare cerință, pe linii separate. Astfel, pe prima linie se va scrie *înălțimea*, pe a doua linie *fuga* și pe a treia linie două numere: numărul de acorduri majore și numărul de acorduri minore, separate prin spațiu.
h2. Restricții
* $1 ≤ N ≤ 10000$
* Notele sînt valori întregi între $1$ și $250$
* Notele sînt valori întregi între $2$ și $100$
* Partitura conține cel puțin o notă
* Pauzele sînt reprezentate prin numere $0$
* Pauzele sînt reprezentate prin numere $1$
h2. Exemplu
table(example).
|_. partitura.in |_. partitura.out |
| 15
2 5 7 10 7 3 0 3 5 2 0 0 8 10 13
2 5 7 10 7 3 1 3 5 2 1 1 8 10 13
| 75
5
1 2
Nu există diferențe între securitate.