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ărul0
- Nota
re
cu numărul1
- Nota
mi
cu numărul2
- Nota
fa
cu numărul3
- Nota
sol
cu numărul4
- Nota
la
cu numărul5
- Nota
si
cu numărul6
- Nota
do2
cu numărul7
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 .
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!