Concursul de la III.3
La un concurs, fiecare echipă are câte un indicativ, număr natural din intervalul [10,99]; indicativele sunt acordate la rând, în ordinea înscrierii. Fiecare echipă are de rezolvat câte trei probleme și fiecare problemă este evaluată cel mult o dată și notată cu un punctaj, număr natural din intervalul [0,99]. Rezultatul pentru fiecare problemă trimisă spre evaluare este înregistrat sub forma unui număr natural, format prin concatenarea, în această ordine, a numărului problemei (1, 2 sau 3), a punctajului obținut și a indicativului echipei. Problemele pentru care nu se trimit rezolvări spre evaluare sunt notate implicit cu câte 0 puncte. Clasamentul se face în funcție de punctajul total obținut, în ordine descrescătoare, la punctaj egal departajarea fiind în funcție de numărul de probleme cu punctaj 99, iar în caz de egalitate în funcție de ordinea înscrierii.
Fișierul bac.txt conține cel mult 10⁶ numere naturale din intervalul [10³,10⁵), reprezentând rezultatele obținute la problemele evaluate. Numerele sunt separate prin câte un spațiu.
Se cere să se afișeze pe ecran indicativul primei echipe din clasament. Proiectați un algoritm eficient din punctul de vedere al timpului de executare.
Exemplu: dacă fișierul are conținutul alăturat, pe ecran se afișează 12 (primele cinci echipe din clasament sunt, în această ordine, 12, 15, 11, 10, 30, primele trei obținând câte 259 de puncte, primele două cu câte o problemă de punctaj 99 și prima echipă fiind înscrisă înaintea celei de-a doua).

III.3.b8 p
b. Scrieți programul C/C++ corespunzător algoritmului proiectat.
Verifică-te pe barem
Un exemplu de răspuns
#include <fstream>
#include <iostream>
using namespace std;
int p[100], nr[100];
int main()
{
ifstream f("bac.txt");
int x, i, pct, em = 10;
while (f >> x)
{
i = x % 100;
if (x / 100 > 99) pct = (x / 100) % 100;
else pct = (x / 100) % 10;
p[i] += pct;
if (pct == 99) nr[i]++;
}
for (i = 11; i < 100; i++)
if (p[i] > p[em] || (p[i] == p[em] && nr[i] > nr[em])) em = i;
cout << em;
return 0;
}Exemplu scris de Zece, nu singurul răspuns bun.









