fbpx

Problema #2484 – key – Rezolvari PBInfo

de Mihai-Alexandru

Cristi are în sertar n chei vechi; fiecare a costat o anumită sumă exprimată în lei și fiecare a fost făcută pentru a deschide aceeași ușă. Atât cheile cât și ușa au un cod format din 3 litere. Din păcate, unele chei s-au deteriorat și Cristi le-a împărțit în patru categorii:

  1. stricate – nicio o literă din codul cheii nu coincide cu litera de pe aceeași poziție din codul ușii, iar pentru a o repara trebuie sa plătească prețul integral al cheii;
  2. deteriorate – exact o litera din codul cheii coincide cu litera de pe aceeași poziție din codul ușii, iar pentru a o repara trebuie sa plătească două treimi din prețul cheii;
  3. slab deteriorate – exact două litere din codul cheii coincid cu literele de pe aceleași poziții din codul ușii, iar

    Exemplu

    key.in

    2 ABC 4
    ABC 15
    AXC 9
    AFG 3
    UYC 30

    key.out

    25
    #include <bits/stdc++.h>
    using namespace std;
    
    ifstream cin("key.in");
    ofstream cout("key.out");
    
    int main()
    {
        int n , m;
        char c1 , c2 , c3 , x1 , x2 , x3;
        cin >> n >> c1 >> c2 >> c3 >> m;
        if(n==1)
        {
            int cnt1 = 0 , cnt2=0 , cnt3=0 , cnt4=0;
            for(int i = 0 ; i < m ; ++i)    
            {
                int cnt=0;
                int nr;
                cin >> x1 >> x2 >> x3 >> nr;
                if(x1!=c1)
                    cnt++;
                if(x2!=c2)
                    cnt++;
                if(x3!=c3)
                    cnt++;
                if(cnt==0)
                    cnt1++;
                if(cnt==1)
                    cnt2++;
                if(cnt==2)
                    cnt3++;
                if(cnt==3)
                    cnt4++;
            }
            cout << cnt4 << ' ' << cnt3 << ' ' << cnt2 << ' ' << cnt1;
        }
        else
        {
            int s=0;
            for(int i = 0 ; i < m ; ++i)
            {
                int nr;
                cin >> x1 >> x2 >> x3 >> nr;
                nr/=3;
                if(x1!=c1)
                    s+=nr;
                if(x2!=c2)
                    s+=nr;
                if(x3!=c3)
                    s+=nr;
            }
            if(s!=0)
            cout << s;
            else
            cout << "GRATIS";
        }
        return 0;    
    }
    Comentarii

S-ar putea sa iti placa