Rezolvare completă PbInfo #1544 Muzical

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.

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema Muzical :

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

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #1544 Muzical

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1544 Muzical de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!