Cod sursa(job #308932)

Utilizator mardeiasIancu Matei mardeias Data 28 aprilie 2009 23:10:43
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
//Pentru Visual C++
#include <iostream>
#include <fstream>

using namespace std;

//Pentru Borland
//#include <iostream.h>
//#include <fstream.h>

fstream fisIN("flip.in", ios::in);
fstream fisOUT("flip.out", ios::out);

int main()
{
	int m, n, i, j, check=1;
	long int flip[16][16], suma_el, suma_neg, suma_tot;

	//citire numar linii, coloane
	fisIN>>m;
	fisIN>>n;

	//citire matrice
	for(i=0;i<m;i++)
		for(j=0;j<n;j++)
			fisIN>>flip[i][j];
	while(check==1)
	{
		check=0;
		for(i=0;i<m;i++)
		{
			suma_el=0;
			suma_neg=0;
			for(j=0;j<n;j++)
			{
				suma_el+=flip[i][j];
				suma_neg+=-flip[i][j];
			}
			if(suma_neg>suma_el)
			{
				for(j=0;j<n;j++)
					flip[i][j]*=-1;
				check=1;
			}
		}

		for(j=0;j<n;j++)
		{
			suma_el=0;
			suma_neg=0;
			for(i=0;i<m;i++)
			{
				suma_el+=flip[i][j];
				suma_neg+=-flip[i][j];
			}
			if(suma_neg>suma_el)
			{
				for(i=0;i<m;i++)
					flip[i][j]*=-1;
				check=1;
			}
		}
	}

	suma_tot=0;
	for(i=0; i<m; i++)
	{
		for(j=0; j<n; j++)
		{
			suma_tot+=flip[i][j];
		}
	}
	fisOUT<<suma_tot;
	
	fisIN.close();
	fisOUT.close();
}