Un torneo è composto da K gironi, con N squadre partecipanti in ciascun girone (per un totale di KxN squadre nel torneo).
Dopo le eliminatorie, passa soltanto la prima classificata di ogni girone.
A ogni squadra è associato un coefficiente di bravura, ovvero un intero positivo che è tanto maggiore quanto più la squadra è forte.
Per rendere più vivace il torneo, gli organizzatori vogliono far gareggiare le squadre più forti tra loro soltanto dopo le eliminatorie: in altre parole, le K squadre con i coefficienti di bravura più alti devono giocare in gironi distinti.
Aiutate gli organizzatori a verificare che la composizione del torneo rispetti il loro volere: prese le K squadre con il più alto coefficiente di bravura, ciascun girone deve contenere esattamente una di esse (da notare che due o più squadre possono avere lo stesso coefficiente).
Dati di input
Il file input.txt è composto da K+1 righe.
- La prima riga contiene due interi positivi separati da uno spazio: il numero K di gironi e il numero N di squadre per girone.
- Le successive K righe contengono i coefficienti di bravura delle squadre: la j-esima di tale righe contiene N interi positivi separati da uno spazio che sono i coefficienti di bravura delle N squadre nel j-esimo girone, per 1 ≤ j ≤ K.
Dati di output
Il file output.txt è composto di una riga contenente un solo intero:
- 1 se il torneo rispetta i vincoli imposti dagli organizzatori,
- 0 altrimenti.
Assunzioni
- 1 < N ≤ 100
- 1 < K ≤ 100
Esempi di input/output
input.txt | output.txt |
3 4 3 5 7 9 3 6 78 90 43 78 71 32 |
0 |
3 4 2 2 2 1 2 1 3 1 2 4 2 1 |
1 |
#include#include #include // sort() using namespace std; #define KMAX 100 #define NMAX 100 int bravura[KMAX][NMAX]; int main() { int K, N; ifstream fin ( "input.txt"); ofstream fout("output.txt"); fin >> K >> N; for(int i=0; i < K; i++) for(int j=0; j < N; j++) fin >> bravura[i][j]; for(int i=0; i < K; i++) sort(bravura[i],bravura[i]+N); int meno_brava=bravura[0][N-1]; // la meno brava tra le prime for(int i=1; i < K; i++) if(bravura[i][N-1] < meno_brava) meno_brava=bravura[i][N-1]; int risposta=1; // se una seconda è più brava... for(int i=0; i < K; i++) if(bravura[i][N-2] > meno_brava) { risposta=0; break; } fout << risposta; return 0; }