Cannoniere

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
*/
#include

int 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;
}