/*TEE HUI YOU (001005-10-1332)

	QUESTION 2 (-11-2019)*/
	
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;

ofstream out ("output2.txt");

void displayLine ()
{
	for (int i = 0; i < 52; i++)
		out << "-";
	
	out << endl;
}

int findIndWinner (int totalInd[12])
{
	int highest = 0, indHighest;
	
	for (int i = 0; i < 12; i++) 
	{
		if (totalInd[i] > highest)
		{
			highest = totalInd[i];
			indHighest = i;
		}
	}
	return indHighest;
}

int findTeamWinner (int sumT[3])
{
	int highest = 0, tHighest;
	
	for (int i = 0; i < 3; i++)
	{
		if (sumT[i] > highest)
		{
			highest = sumT[i];
			tHighest = i;
		}
	}
	return tHighest;
}

int main ()
{
	ifstream inp ("input2.txt");
	int marks [12][7], totalInd[12]={0,0,0,0,0,0,0,0,0,0,0,0},
		sumT[3] = {0,0,0}, indWinner, tWinner;
	
	if (!inp)
	{
		cout << "Sorry, input file does not exist!\n";
		exit(0);
	}
	
	for (int i = 0; i < 12; i++)
	{
	 	for (int j = 0; j < 7; j++)
	 	{
	 		inp >> marks[i][j];
	 		if(j > 1) 
	 			totalInd[i] += marks[i][j];
		}
		if (i < 4)
			sumT[0] += totalInd[i];
		else if (i < 8)
			sumT[1] += totalInd[i];
		else
			sumT[2] += totalInd[i];
	}
		
	indWinner = findIndWinner (totalInd);
	tWinner = findTeamWinner (sumT);
	
	displayLine ();
	out << "Id" 
		<< setw(8) << "E1" << setw(8) << "E2" << setw(8) << "E3" 
		<< setw(8) << "E4" << setw(8) << "E5" << setw(11) << "Total\n";
	
	for (int x = 0; x < 3; x++)
	{
		displayLine ();
		out << "TEAM " << x+1 << endl;
		
		for (int y = (4*x); y < ((4*x)+4) ; y++)
		{
			for (int z = 1; z < 7; z++)
			{
				out << left;
				out << setw(8) << marks[y][z];
			}
			out << setw(12) << totalInd[y] << endl;
		}
		
		out << right;
		out << "TOTAL" << setw(45) << sumT[x] << endl;
	}
	
	displayLine ();
	
	out << endl;
	out << "Winner for Individual Category: " << marks [indWinner][1]
		<< " (Team " << marks [indWinner][0] << ")\n";
	out << "Winner for Group Category: Team " << tWinner + 1
		<< " (Score = " << sumT[tWinner] << ")\n";
		
	inp.close ();
	out.close();
	
	return 0;
}








