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.1 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 proprietățile ei. Tatăl său este, însă, un om foarte strict și vrea să îl verifice, drept care vă roagă pe voi să îl ajutați.

O partitură o reprezintă ca pe un șir de numere, unde notele sînt numere diferite de unu, iar pauzele sînt note egale cu unu. De exemplu partitura 2 3 5 1 5 3 2 8 1 2 are 8 note separate de două pauze.

Proprietățile pe care le află Amadeus sînt:

  • Înălțimea partiturii, care este suma tuturor notelor. De exemplu, în partitura anterioară, suma notelor este 30 (pauzele nu se adună).
  • Fuga, care reprezintă diferența dintre suma creșterilor și a descreșterilor în valoare absolută. De pildă, în exemplul nostru vom avea două creșteri și o descreștere:
    • 2 3 5 are creșterea (3-2) + (5-3) = 3
    • 2 8 are creșterea (8-2) = 6
    • 5 3 2 cu descreșterea (5-3) + (3-2) = 3

      Deoarece suma creșterilor este mai mare decît suma descreșterilor fuga partiturii este (6+3) – 3 = 6.

  • Gama partiturii este dată de numerele de acorduri majore și minore. 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. De exemplu, în partitura 4 7 9 12 9 5 1 4 6 2 1 2 vom avea un acord major, (4 7 9) și un acord minor, (7 9 12).

Cerință

Dată o partitură determinați înălțimea, 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 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.

Restricții

  • 1 ≤ N ≤ 10000
  • Notele sînt valori întregi între 2 și 100
  • Partitura conține cel puțin o notă
  • Pauzele sînt reprezentate prin numere 1
  • Se acordă punctaje parțiale astfel: 40% primul punct, 20% punctul doi și 40% punctul trei
  • Pentru punctaje parțiale trebuie să afișați valori pe fiecare linie. De exemplu, dacă răspundeți numai la primul și ultimul punct trebuie să afișați o valoare oarecare pe linia a doua, de exemplu 0.

Exemple

partitura.in partitura.out Explicație
12
4 7 9 12 9 5 1 4 6 2 1 2
60
1
1 1
Suma notelor este 60 (pauzele nu se adună).
 
Vom avea trei intervale de creștere și două de descreștere:
4 7 9 12 are creșterea (7-4) + (9-7) + (12-9) = 8
4 6 are creșterea (6-4) = 2
12 9 5 cu descreșterea (12-9) + (9-5) = 7
6 2 cu descreșterea (6-2) = 4
Fuga partiturii este suma descreșterilor minus suma creșterilor:
(7+4) – (8+2) = 1
 
Avem un acord major, (4 7 9) și un acord minor, (7 9 12)
deci vom afișa 1 1
15
2 5 7 10 7 3 1 3 5 2 1 1 8 10 13
75
5
1 2
Suma notelor este 75 (pauzele nu se adună).
 
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
 
Avem un acord major, (2 5 7), precum și două acorduri minore,
(5 7 10) și (8 10 13) deci vom afișa 1 2

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

Indicii de rezolvare

Arată 2 categorii