Cod sursa(job #500246)

Utilizator tvararuVararu Theodor tvararu Data 11 noiembrie 2010 19:10:21
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.26 kb
#include <fstream>
using namespace std;

int nMatrice[17][17];
int nLin, nCol;

void FlipCol(const int &rnWhichCol)
{
	if (rnWhichCol)
		for (int iii = 1; iii <= nLin; iii++)
			nMatrice[iii][rnWhichCol] *= -1;
}

void FlipLin(const int &rnWhichLin)
{
	if (rnWhichLin)
		for (int jjj = 1; jjj <= nCol; jjj++)
			nMatrice[rnWhichLin][jjj] *= -1;
}

int FindLin()
{
	for (int iii = 1; iii <= nLin; iii++)
	{
		int nSum = 0;
		for (int jjj = 1; jjj <= nCol; jjj++)
			nSum += nMatrice[iii][jjj];
		if (nSum < 0) return iii;
	}
	return 0;
}

int FindCol()
{
	for (int jjj = 1; jjj <= nCol; jjj++)
	{
		int nSum = 0;
		for (int iii = 1; iii <= nLin; iii++)
			nSum += nMatrice[iii][jjj];
		if (nSum < 0) return jjj;
	}
	return 0;
}


int main()
{
	ifstream input("flip.in");
	input >> nLin >> nCol;
	
	for (int iii = 1; iii <= nLin; iii++)
		for (int jjj = 1; jjj <= nCol; jjj++)
			input >> nMatrice[iii][jjj];
	
	input.close();

	while (FindLin() || FindCol())
	{
		FlipLin(FindLin());
		FlipCol(FindCol());
	}
	
	int nTotal = 0;	
	for (int iii = 1; iii <= nLin; iii++)
		for (int jjj = 1; jjj <= nCol; jjj++)
			nTotal += nMatrice[iii][jjj];
	
	ofstream output("flip.out");
	output << nTotal;
	output.close();
	
	return 0;
}