fbpx

Problema #1544 – Muzical – Rezolvari PBInfo

de Mihai-Alexandru

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:

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.

#include <bits/stdc++.h>
using namespace std;

ifstream cin("muzical.in");
ofstream cout("muzical.out");

int main()
{
    char ch1 , ch2 , ch3;
    int n;
    cin >> n;
    int s=0;
    for(int i = 0 ; i < n ; ++i)
    {
        cin >> ch1 >> ch2;
        if(ch1=='d' && ch2=='o')
        {
        cin >> ch3;
        if(ch3=='1')
        s+=0;
        else
        s+=7;
        }
        if(ch1=='r' && ch2=='e')
        s+=1;
        if(ch1=='m' && ch2=='i')
        s+=2;
        if(ch1=='f' && ch2=='a')
        s+=3;
        if(ch1=='s' && ch2=='o')
        {
            cin >> ch3;
        s+=4;
        }
        if(ch1=='l' && ch2=='a')
        s+=5;
        if(ch1=='s' && ch2=='i')
        s+=6;
    }
    int m=s%8;
    if(m==0)
        cout << "do1";
    if(m==1)
        cout << "re";
    if(m==2)
        cout << "mi";
    if(m==3)
        cout << "fa";
    if(m==4)
        cout << "sol";
    if(m==5)
        cout << "la";
    if(m==6)
        cout << "si";
    if(m==7)
        cout << "do2";
    return 0;    
}
Comentarii

S-ar putea sa iti placa