//Mirza Sabrina Binti Mohd Salmi & Nurul Alis Alia Binti Mohamad Zamri Section 2
#include<iostream>
#include<fstream>
#include<cstdlib>
#include<cstring>
#include<iomanip>
using namespace std;

void findTeamWinner(int totalteam[],int &teamWinner,int &teamWinnerScore,int marks[][7])
{
	int winner,i;
	winner=totalteam[0];
	for(i=0;i<3;i++)
	{
		if(totalteam[i]>winner)
		{
			winner=totalteam[i];
			teamWinner=i+1;
			teamWinnerScore=winner;
		}	
	}
}

void findIndWinner(int totalpar[],int &indWinner,int &indWinnerTeam,int marks[][7])
{
	int winner,i;
	winner=totalpar[0];
	for(i=0;i<12;i++)
	{
		if(totalpar[i]>winner)
		{
			winner=totalpar[i];
			indWinner=marks[i][1];
			indWinnerTeam=marks[i][0];
		}	
	}
}

void displayLine()
{
	for(int i=0;i<52;i++)
	cout<<"-";
	cout<<endl;
}

int main()
{
	int marks[12][7],i,j,totalpar[12]={0},totalteam[3]={0},indWinner=0,indWinnerTeam=0,teamWinner=0,teamWinnerScore=0;
	ifstream in;
	in.open("input2.txt");
	if(!in)
	{
		cout<<"Sorry, input file does not exist!"<<endl;
		exit(0);
	}
	for(i=0;i<12;i++)
	{
		for(j=0;j<7;j++)
		{
			in>>marks[i][j];
			if(j>1&&j<7)
			totalpar[i]+=marks[i][j];
		}
		if(i<4)
		totalteam[0]+=totalpar[i];
		else if(i<8)
		totalteam[1]+=totalpar[i];
		else
		totalteam[2]+=totalpar[i];
	}
	findIndWinner(totalpar,indWinner,indWinnerTeam,marks);
	findTeamWinner(totalteam,teamWinner,teamWinnerScore,marks);
	displayLine();
	cout<<left<<setw(8)<<"Id"<<setw(8)<<"E1"<<setw(8)<<"E2"<<setw(8)<<"E3"<<setw(8)<<"E4"<<setw(7)<<"E5"<<setw(7)<<"Total"<<endl;
	displayLine();
	int k=0;
	for(i=0;i<12;i++)
	{
		for(j=0;j<7;j++)
		{
			if((i==0||i==4||i==8)&&j==0)
			cout<<"TEAM "<<marks[i][j]<<endl;
			if(j!=0)
			cout<<left<<setw(8)<<marks[i][j];
		}
	cout<<totalpar[i]<<endl;
	if(i==3||i==7||i==11)
	{
		cout<<"TOTAL"<<right<<setw(45)<<totalteam[k]<<endl;
		displayLine();
		++k;
	}	
	}
	cout<<endl<<"Winner for Individual Category: "<<indWinner<<" (Team "<<indWinnerTeam<<")"<<endl
		<<"Winner for Group Category: Team "<<teamWinner<<" (Score = "<<teamWinnerScore<<")";
}
