# PBinfo #1544 – muzical – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

Gigel în timp ce așteptă să meargă la doctor se joacă cu noul lui telefon. A observat ca atunci când este pe ecranul de start și apasă pe o tastă numerică se aude o notă muzicală.

Dar lui i-a venit ideea să codeze fiecare notă muzicală în acest mod:

Nota do1 cu numărul 0
Nota re cu numărul 1
Nota mi cu numărul 2
Nota fa cu numărul 3
Nota sol cu numărul 4
Nota la cu numărul 5
Nota si cu numărul 6
Nota do2 cu numărul 7


El creează un cântec, ia notele muzicale și le codează ca mai sus, le adună, iar apoi împarte suma la 8 și restul rămas este nota maximă.

Cerință
Ajutați-l pe Gigel sa afle nota maximă!

Date de intrare
Fișierul de intrare muzical.in conține pe prima linie numărul n și pe a doua linie n note muzicale.

Date de ieșire
Fișierul de ieșire muzical.out conține pe prima linie nota maximă.

Restricții și precizări
n ≤ 100.000

Exemplu:
muzical.in

8
do1 re mi fa sol la si do2
muzical.out

sol
Explicație
do1 se codifică prin 0

re se codifică prin 1
mi se codifică prin 2
fa se codifică prin 3
sol se codifică prin 4
la se codifică prin 5
si se codifică prin 6
do2 se codifică prin 7

Adunând codificările notelor se obține suma 28, iar restul sumei la împărțirea prin 8 este 4, deci nota maximă este sol.

## Cod sursă C++

```cpp
#include <fstream>
using namespace std;
ifstream in("muzical.in");
ofstream out("muzical.out");
int n, i;
long long int sum;
char a, b, c;
int main() {
    in >> n;
    for (i = 1; i <= n; i++) {
        in >> a >> b;
        if (a == 'd' && b == 'o') {
            in >> c;
            if (c == '1') sum = sum + 0;
            else if (c == '2') sum = sum + 7;
        } if (a == 'r' && b == 'e') sum++;
        if (a == 'm' && b == 'i') sum = sum + 2;
        if (a == 'f' && b == 'a') sum = sum + 3;
        if (a == 's' && b == 'o') {
            in >> c;
            sum = sum + 4;
        } if (a == 'l' && b == 'a') sum = sum + 5;
        if (a == 's' && b == 'i') sum = sum + 6;
    } sum = sum % 8;
    if (sum == 0) out << "do1";
    else if (sum == 1) out << "re";
    if (sum == 2) out << "mi";
    if (sum == 3) out << "fa";
    if (sum == 4) out << "sol";
    if (sum == 5) out << "la";
    if (sum == 6) out << "si";
    if (sum == 7) out << "do2";
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/1544)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/1544/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-1544/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
