Detalii evaluare #64145777

Rezumat problemă

#4993

În vistieria cetății se află N lacăte așezate în linie, numerotate de la 1 la N, fiecare având inscripționat un cod numeric în baza 10. Definim amprenta unui cod ca fiind un număr format din două cifre, \( \overline{XY} \) , unde \(X\) este cea mai mare cifră a codului, iar \(Y\) este cifra cea mai mică. De exemplu pentru codul 327003 amprenta este 70.

Două lacăte din șir situate pe pozițiile i și j formează o pereche echilibrată dacă i < j și codurile lor Cod[i] și Cod[j] au aceleași cifre, indiferent de ordinea și numărul de apariții al acestora. De exemplu, dacă primul lacăt din șir și al treilea au codurile Cod[1] = 1221 și Cod[3] = 211, atunci perechea (Cod[1], Cod[3]) este echilibrată deoarece ambele sunt formate exact din cifrele {1, 2} și 1 < 3.

Scrieți un program care rezolvă următoarele cerințe, cerința de rezolvat fiind dată de C ∈ {1, 2, 3}:

C=1. Determinați câte lacăte au amprenta formată din două cifre identice.
C=2. Considerăm că din fiecare cod trebuie să eliminăm exact o apariție a unei cifre, astfel încât suma amprentelor rezultate să fie maximă. Determinați această sumă.
C=3. Determinați numărul total de perechi echilibrate din șirul inițial al celor N lacăte.

Detalii

Problema Lacate Operații I/O lacate.in/lacate.out
Limita timp 0.1 secunde Limita memorie Total: 64 MB / Stivă 8 MB
Id soluție #64145777 Utilizator Balan Stefan (Stefan_2014)
Fișier lacate.cpp Dimensiune 2.11 KB
Data încărcării 20 Aprilie 2026, 12:34 Scor/rezultat 84 puncte

Evaluare

Mesaj compilare

lacate.cpp: In function ‘int main()’:
lacate.cpp:10:11: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   10 |     fscanf(fin, "%d %d", &C, &N);
      |     ~~~~~~^~~~~~~~~~~~~~~~~~~~~~
lacate.cpp:13:15: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   13 |         fscanf(fin, "%d", &v[i]);
      |         ~~~~~~^~~~~~~~~~~~~~~~~~

Rezultat evaluare

Test Timp Mesaj evaluare Scor posibil Scor obținut
1 0.003 secunde OK. 4 4
2 0.001 secunde OK. 3 3
3 0.001 secunde OK. 4 4
4 0.002 secunde OK. 4 4
5 0.004 secunde OK. 4 4
6 0.006 secunde OK. 3 3
7 0.001 secunde OK. 3 3
8 0.001 secunde OK. 3 3
9 0.005 secunde OK. 3 3
10 0.006 secunde OK. 3 3
11 0.006 secunde OK. 3 3
12 0.001 secunde OK. 3 3
13 0.001 secunde OK. 3 3
14 0.003 secunde OK. 3 3
15 0.003 secunde OK. 3 3
16 0.004 secunde OK. 3 3
17 0.002 secunde OK. 3 3
18 0.001 secunde OK. 3 3
19 0.004 secunde OK. 3 3
20 0.006 secunde OK. 3 3
21 0.012 secunde OK. 4 4
22 0.001 secunde OK. 4 4
23 0.001 secunde OK. 4 4
24 0.005 secunde OK. 4 4
25 0.001 secunde OK. 4 4
26 Depășit Limita de timp depășită 4 0
27 Depășit Limita de timp depășită 4 0
28 Depășit Limita de timp depășită 4 0
29 Depășit Limita de timp depășită 4 0
Punctaj total 84

Cum funcționează evaluarea?

www.pbinfo.ro permite evaluarea a două tipuri de probleme:

  • probleme la care rezolvarea presupune scrierea unui program complet
  • probleme la care rezolvarea presupune scrierea unei secvențe de program - câteva instrucțiuni, o listă de declarații, una sau mai multe funcții, etc.

Problema Lacate face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:

  • Programul sursă este compilat folosind compilatorul corespunzător. Dacă în urma compilării se obțin erori sau avertismente, acestea sunt afișate în această pagină.
  • Dacă programul a fost compilat, executabilul obținut va fi rulat, furnizându-i-se unul sau mai multe seturi de date de intrare, în concordanță cu restricțiile specifice problemei. Pentru fiecare set de date se obține un anumit punctaj, în raport cu corectitudinea soluției tale.

Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.

Du-te sus!