Vincere la classifica dei cannonieri è sempre una grande soddisfazione per un attaccante, e in particolare vincerla ai mondiali è la massima aspirazione!
Il vostro compito è quello di calcolare il vincitore della classifica cannonieri, a partire da un elenco di tutti i marcatori, in ordine sparso, in tutte le partite.
Ogni giocatore è rappresentato da un numero intero, che lo identifica, e in ogni riga del file ci sono due interi: il numero che rappresenta il giocatore e il numero di reti che ha segnato.
Per esempio, se il file contiene le seguenti righe (la prima riga contiene un solo intero, il numero di righe rimanenti del file):
7
23 2
11 1
67 3
45 1
11 2
23 1
11 1
il vostro programma dovrà stampare, in una riga,
11 4
ovvero l’identificativo del capocannoniere e il numero totale dei suoi gol.
Dati di input
Come detto in precedenza, nel file input.txt sono presenti N+1 righe di testo:
- nella prima c’è un singolo numero intero positivo N che ci dice quanti sono le linee dell’elenco dei marcatori;
- le restanti N righe del file contengono due coppie di interi (positivi):
- G, il numero che rappresenta il giocatore,
- e R il numero di reti che ha segnato (in una data partita).
Dati di output
Nel file output.txt dovrai stampare due interi positivi:
- il numero che rappresenta il cannoniere,
- e il numero di reti totali che ha segnato.
Assunzioni
- 1 ≤ N ≤ 50
- 1 ≤ G ≤ 100
Esempi di input/output
input.txt | output.txt |
7 23 2 11 1 67 3 45 1 11 2 23 1 11 1 |
11 4 |
5 10 3 9 1 10 1 7 2 10 1 |
10 5 |
/* www.valcon.it GATOR 2014 - Cannoniere */ #includeint reti_totali[101]; // già inizializzato a 0 int main() { int N, G, R; int p, g; FILE* fin =fopen( "input.txt","r"); FILE* fout=fopen("output.txt","w"); fscanf(fin, "%d", &N); // quante partite for(int p=1; p <= N; p++) // per ogni partita p { fscanf(fin, "%d %d", &G,%R); // (R)eti del (G)iocatore nella (p)artita reti_totali[G] += R; } int cannoniere=1; for(int g=2; g <= 100; g++) // per ogni (g)iocatore if(reti_totali[g] > reti_totali[cannoniere]) cannoniere=g; fprintf(fout, "%d %d\n", cannoniere, reti_totali[cannoniere]); return 0; }
/* www.valcon.it GATOR 2014 - Cannoniere */ #include#include using namespace std; int reti_totali[101]; // già inizializzato a 0 int main() { int N, G, R; ifstream in("input.txt" ); ofstream out("output.txt"); in >> N; // quante partite for(int p=1; p <= N; p++) // per ogni partita p { in >> G >> R; // (R)eti del (G)iocatore nella (p)artita reti_totali[G] += R; } int cannoniere=1; for(int g=2; g <= 100; g++) // per ogni (g)iocatore if(reti_totali[g] > reti_totali[cannoniere]) cannoniere=g; out << cannoniere << " " << reti_totali[cannoniere] << endl; return 0; }