Detalii evaluare #22229059

Rezumat problemă

#3187 RATC2

Se dau două numere n p și o listă de n elemente cu urcările în autobuz a mai multor persoane a căror structura este prenume nume bilet_platit, fiecare intrare fiind plasată pe câte o linie. Câmpurile prenume și nume sunt șiruri de caractere, iar bilet_platit este un număr care poate fi 0 sau 1; 0 dacă persoana respectivă nu a plătit biletul sau 1 dacă a plătit biletul. Pentru fiecare bilet neplătit se va contoriza o penalizare persoanei.

Se cere :

a) Prenumele, numele și numărul de penalizări al persoanei care are număr maxim de penalizări. Dacă există mai multe persoane cu număr maxim de penalizări se cere afișarea persoanei care apare prima în ordine alfabetică.
b) Ordonarea listei de persoane descrescător după numărul de penalizări, la număr de penalizări egale, crescător după prenume, la prenume identice, crescător după nume.

Detalii

Problema RATC2 Operații I/O ratc2.in/ratc2.out
Limita timp 0.1 secunde Limita memorie Total: 64 MB / Stivă 8 MB
Id soluție #22229059 Utilizator Lucan Eduard Andrei (edi_l)
Fișier ratc2.cpp Dimensiune 1.63 KB
Data încărcării 30 Martie 2020, 18:38 Scor / rezultat 100 puncte

Evaluare


Mesaj compilare

ratc2.cpp: In function 'int main()':
ratc2.cpp:20:68: warning: format '%s' expects argument of type 'char*', but argument 3 has type 'char (*)[51]' [-Wformat=]
   fscanf(fin,"%s %s %d",&v[i].nume,&v[i].prenume,&v[i].bilet_platit);

                                                                    ^
ratc2.cpp:20:68: warning: format '%s' expects argument of type 'char*', but argument 4 has type 'char (*)[51]' [-Wformat=]
ratc2.cpp:64:81: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
     if(w[i].bilet_platit<w[j].bilet_platit||w[i].bilet_platit==w[j].bilet_platit&&strcmp(w[i].nume,w[j].nume)>0||w[i].bilet_platit==w[j].bilet_platit&&strcmp(w[i].nume,w[j].nume)==0&&strcmp(w[i].prenume,w[j].prenume)>0)

                                                                                 ^
ratc2.cpp:64:182: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
     if(w[i].bilet_platit<w[j].bilet_platit||w[i].bilet_platit==w[j].bilet_platit&&strcmp(w[i].nume,w[j].nume)>0||w[i].bilet_platit==w[j].bilet_platit&&strcmp(w[i].nume,w[j].nume)==0&&strcmp(w[i].prenume,w[j].prenume)>0)

                                                                                                                                                                                      ^
ratc2.cpp:17:27: warning: ignoring return value of 'int fscanf(FILE*, const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  fscanf(fin,"%d %d",&n,&p);

                           ^
ratc2.cpp:20:69: warning: ignoring return value of 'int fscanf(FILE*, const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   fscanf(fin,"%s %s %d",&v[i].nume,&v[i].prenume,&v[i].bilet_platit);

                                                                     ^

Rezultat evaluare

Test Timp Mesaj evaluare Scor posibil Scor obținut
1 0 secunde OK. 10 10 Exemplu
2 0 secunde OK. 10 10 Exemplu
3 0 secunde OK. 15 15
4 0 secunde OK. 15 15
5 0 secunde OK. 15 15
6 0 secunde OK. 15 15
7 0 secunde OK. 10 10
8 0 secunde OK. 10 10
Punctaj total 100

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 RATC2 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ă.