/***
Campionato di Calcio
Data una matrice (MAX 10 X 10) memorizzata su file di testo
come qui sotto (5 Righe X 6 Colonne) 

char squadre [10][40];    
char giornate[10][40];  
int righe,colonne;

5 6
Inter Milan Juve Roma Napoli Lazio
Prima Seconda Terza Quarta Quinta
1  1  3  3  0  0
1  1  1  1  1  1
3  3  0  0  1  1
3  3  3  0  0  0
1  3  0  1  3  0

Si calcoli:

1) La classifica del campionato nell'ultima giornata
2) La squadra che ha perso piu' partite

Si produca l'output, prima a video
poi nel file output.txt

*/


#include<stdio.h>
#include<stdlib.h>

#define SQUADRE 10
#define GIORNATE 10
#define LSTR 40

int sq, gi; // dimensioni reali della matrice sq=colonne, gi=righe
char squadre[SQUADRE][LSTR+1];    // vettore di stringhe delle squadre
char giornate[GIORNATE] [LSTR+1]; // vettore di stringhe delle giornate
int punti[SQUADRE][GIORNATE]= {0}; // punti per SQUADRE / GIORNATE 

void carica_dati()
{
	FILE *fd;
	int i,j;
	fd = fopen("campionato.txt","r");
	if (fd == NULL) 
	{ 
		printf("Errore, non trovo il file campionato.txt");
		exit(0);
	}
	fscanf(fd,"%d",&gi); // carico le giornate
	fscanf(fd,"%d",&sq); // carico le squadre
	
	for(i=0; i < sq; i++)
		fscanf(fd,"%s",squadre[i]); // carico squadre
	for(i=0; i < gi; i++)
		fscanf(fd,"%s",giornate[i]); // carico giornate
	for(i=0; i < gi; i++)
		for(j=0; j < sq; j++ )   // carico i punti
			fscanf(fd,"%d",&punti[i][j]);

}

void visualizza_dati()
{
	int i,j;
	printf("Squadre=%d - Giornate=%d\n",sq,gi);
	printf("SQUADRE=");
	for(i=0; i < sq; i++)
		printf("[%s]",squadre[i]);
	printf("\n");
	printf("GIORNATE=");
	for(i=0; i < gi; i++)
			printf("[%s]",giornate[i]);	
	printf("\n");
	for(i=0; i < gi; i++) {
			for(j=0; j < sq; j++ )
			  	printf("%2d",punti[i][j]);
			printf("\n");
	}			
}

void classifica()   // NON ordinata per punti
{
	int punteggi[SQUADRE]= {0};	
	int i,j;
	printf("\nClassifica alla %s giornata:\n",giornate[gi-1]);
	for(i=0; i < SQUADRE; i++) // Ciclo per tutta la matrice, i mancanti sono a 0!!!
	   for(j=0; j < GIORNATE; j++) 
			punteggi[i]+=punti[j][i];
	for(i =0; i < sq; i++)
		printf("%-8s Punti = %d\n",squadre[i],punteggi[i]);
}



void piu_sconfitte()   // la squadra che ha perso piu' partite
{
    int somma_punteggi[SQUADRE]={0}; // punteggi 
    int sconfitte[SQUADRE]={0};   // numero di partite perse per ogni squadra
    int squadra_piusconfitte;
    int max=-1;
    int i,j;
   

    for(i=0; i<sq; i++)
    {
        for(j=0; j<gi; j++)
        {
            somma_punteggi[i]+= punti[j][i];   // dato NON richiesto dal testo
            if(punti[j][i]==0)
               sconfitte[i]++;   // conto le sue sconfitte
    
        }
    }

    for(i=0; i<sq; i++)   // calcolo della squadra che ha perso piu' partite
    {
        if(sconfitte[i]>max)
        {
            max=sconfitte[i];
            squadra_piusconfitte=i;
        }
    }
    printf("\nSquadra con piu' sconfitte: %s, numero di sconfitte: %d, punti %d\n\n",
           squadre[squadra_piusconfitte], max, somma_punteggi[squadra_piusconfitte]);
}


int main()
{
	carica_dati();
	visualizza_dati();
	classifica();
	piu_sconfitte();
	printf("Premi INVIO per terminare...");
	getchar();
	return 0;
}
