233
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:
- 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;
- 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;
- 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