Cod sursa(job #1054595)

Utilizator MarianMMorosac George Marian MarianM Data 13 decembrie 2013 23:24:51
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <fstream>
using namespace std;

ifstream fin("flip.in");
ofstream fout("flip.out");

int n, m, i, j, a[17][17], s;

void citire();
void sum_lin_col();
void com_col();
void com_lin();
void clear_a();
void afisare();

int main()
{
	citire();
	sum_lin_col();
	com_lin();
	sum_lin_col();
	com_col();
	sum_lin_col();
	afisare();
	fout << s;
	return 0;
}

void citire()
{
	fin >> n >> m;
	for (i = 1; i <= n; i++)
	{
		for (j = 1; j <= m; j++)
		{
			fin >> a[i][j];
		}
	}
}

void sum_lin_col()
{
	clear_a();
	for (i = 1; i <= n; i++)
	{
		for (j = 1; j <= m; j++)
		{
			a[0][j] += a[i][j];
			a[i][0] += a[i][j];
		}
	}
}

void com_col()
{
	for (j = 1; j <= m; j++)
	{
		if (a[0][j] < 0)
		{
			for (i = 1; i <= n; i++)
				a[i][j] *= -1;
			a[0][j] *= -1;
		}
	}
}

void com_lin()
{
	for (i = 1; i <= m; i++)
	{
		if (a[i][0] < 0)
		{
			for (j = 1; j <= n; j++)
				a[i][j] *= -1;
			a[i][0] *= -1;
		}
	}
}

void afisare()
{
	for (i = 1; i <= n; i++)
		s += a[i][0];
}

void clear_a()
{
	for (i = 1; i <= n || i <= m; i++)
	{
		a[0][i] = a[i][0] = 0;
	}
}