per la prima volta, in Italia, a Sirmione. Come da tradizione, nella
giornata tra le due gare i concorrenti sono andati a divertirsi in un parco
giochi, in questo caso, Gardaland. La mattina di quel giorno decine di
pullman hanno prelevato i quattro ragazzi che costituiscono la squadra
olimpica di ciascuna nazione dal Garda Village, dove erano stati
alloggiati, e li hanno portati a Gardaland. Come sempre negli
spostamenti, le varie nazioni erano state ripartite a blocco unico tra i
pullman, ossia tutti gli atleti di una stessa nazione trovavano posto su
uno stesso pullman. Per esempio, sul pullman dell’Italia viaggiavano
anche Giappone, Israele e Irlanda. Al ritorno però, come sempre
succede alle IOI, dopo una giornata in un parco giochi i ragazzi hanno
fatto amicizia tra di loro, e al momento di tornare sui pullman sono saliti
alla rinfusa. Grazie al lavoro delle guide, per ogni pullman è stata stilata
una lista contenente, per ogni nazione, il numero di ragazzi a bordo. Il
vostro compito è quello di aiutare Monica, responsabile
dell’organizzazione, a capire se i pullman possono partire, ovvero se
tutti i quattro ragazzi di ogni nazione che sono arrivati a Gardaland
sono saliti sui pullman. In caso contrario, dovete segnalare a Monica in
quanti mancano all’appello, divisi per nazioni.
Dati di input
Il file input.txt è composto da 1+N+L righe. La prima riga contiene due
interi positivi separati da uno spazio: il numero N delle nazioni e il
numero L di righe contenenti informazioni su chi è attualmente già
salito sui pullman. (Ciascuna nazione verrà qui rappresentata con un
intero compreso tra 0 e N1). Ognuna delle successive N righe
contiene un intero positivo: nella riga i+1 (con i >= 1) troviamo il numero
totale di ragazzi della nazione i1. Ciascuna delle rimanenti L righe
contiene due interi positivi: un intero compreso tra 0 e N1 che
rappresenta la nazione, e un intero positivo che specifica quanti ragazzi
di quella nazione sono su un certo pullman. Ovviamente una stessa
nazione può comparire diverse volte nelle L righe, e più precisamente
compare su tante righe quanti sono i pullman ospitanti atleti di quella
nazione.
Dati di output
Il file output.txt è composto da una sola riga contenente l’intero 0 (zero)
se non manca alcun ragazzo. Altrimenti, il file contiene 1+C righe: la
prima riga contiene un intero C, ovvero il numero di nazioni che hanno
ragazzi ancora a Gardaland. Le restanti C righe contengono due interi:
l’identificativo della nazione e il numero di ragazzi di quella nazione che
non sono ancora saliti su alcun pullman. E’ necessario stampare le
nazioni nell’ordine in cui sono state lette, ovvero in ordine crescente in
base all’identificativo.
Assunzioni
2 ≤ N ≤ 100
N ≤ L ≤ 1000
Contrariamente alle olimpiadi di informatica reali, dove gareggiano (massimo) 4 ragazzi per ogni nazione, nei casi di input si assume che ogni nazione abbia al massimo 100 ragazzi, e almeno 1 ragazzo.
Quindi, indicando con Ri il numero
di ragazzi della iesima nazione, vale sempre 1 ≤ Ri ≤ 100.
Esempi di input/output
File input.txt File output.txt
3 5 2
4 0 1
4 2 1
3
0 2
1 3
0 1
2 2
1 1
File input.txt File output.txt
3 6 0
4
4
4
0 2
1 3
2 1
0 2
2 3
1 1
Basta contare quanti ragazzi non sono sugli autobus:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #include<cstdlib> #include<iostream> #include<fstream> using namespace std; ifstream in; ofstream out; int n,l,t1,t2,persi=0; int main(){ in.open("input.txt"); out.open("output.txt"); in>>n>>l; int rag[n]; for (int i=0;i<n;i++) in>>rag[i]; for (int i=0;i<l;i++){ in>>t1>>t2; rag[t1]-=t2; } for (int i=0;i<n;i++) if(rag[i]>0) persi++; out<<persi; for (int i=0;i<n;i++) if(rag[i]>0) out<<"\n"<<i<<" "<<rag[i]; return 0;} |
Nessun commento:
Posta un commento
Si prega di non commentare in modo volgare e/o offensivo.