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
pentru a o repara trebuie sa platească o treime din prețul cheii; - bune – codul cheii e identic cu codul ușii, iar cheia nu trebuie reparată;
Cerințe
1) Să se afle câte chei din fiecare categorie are Cristi.
2) Sa se afle cât a plătit Cristi pentru a repara toate cheile.
Date de intrare
Fișierul de intrare key.in
conține pe prima linie un număr P
, codul ușii COD
și numarul n; dacă P=1
se rezolvă doar cerința 1, iar dacă P=2
se rezolva doar cerința 2. Pe următoarele n
linii se citește codul cheii și prețul acesteia.
Date de ieșire
Dacă P=1
se afișează numărul de chei stricate, numărul de chei deteriorate, numărul de chei slab deteriorate și numărul de chei bune separate printr-un spațiu, în aceasta ordine.
Dacă P=2
se afișează doar un număr COST
care exprima costul total pentru repararea cheilor.
Restricții și precizări
1 ≤ n ≤ 100
P=1
sauP=2
- orice cod e format din
3
litere - orice preț este divizibil cu
3
și aparține intervalului deschis[0,999]
; - la cerința 2, dacă toate cheile sunt bune sau costul total este
0
se afișează doar mesajulGRATIS
- pentru rezolvarea corectă a cerinței 1 se acordă 30 de puncte, iar pentru rezolvarea corectă a cerinței 2 se acordă 70 de puncte
Exemplu
key.in
1 ABC 4 ABC 15 AXC 9 AFG 3 UYC 30
key.out
0 2 1 1
Explicație
Cristi nu are cheii stricate, dar are două cheii deteriorate, una slab deteriorata și una buna
Exemplu
key.in
2 ABC 4 ABC 15 AXC 9 AFG 3 UYC 30
key.out
25
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 key:
#include <fstream>
char a[4],b[4];int s,d,f,g,P,n,c,t,m,k;
std::ifstream I("key.in");
std::ofstream O("key.out");
int main(){
I>>P>>a>>n;
while(n--){
I>>b>>c;m=0,k=-1;
while(++k<3)
if(a[k]==b[k])++m;
switch(m){
case 0:t+=c;++s;break;
case 1:t+=c/3*2;++d;break;
case 2:t+=c/3;++f;break;
case 3:++g;break;
}
}
if(P==1)
O<<s<<' '<<d<<' '<<f<<' '<<g;
else
if(t)O<<t;
else O<<"GRATIS";
}
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 #2484 key
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2484 key 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!