Cod sursa(job #246483)

Utilizator mardeiasIancu Matei mardeias Data 20 ianuarie 2009 22:04:57
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.41 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;
	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++)
	{
		suma_el=0;
		suma_neg=0;
		for(j=0; j<n; j++)
		{
			fisIN>>flip[i][j];
			
			suma_el+=flip[i][j];
			suma_neg-=flip[i][j];
		}
		if(suma_neg>suma_el)
		{
			//fisOUT<<"Se actioneaza asupra liniei "<<i+1;
			for(j=0; j<n; j++)
			{
				flip[i][j]*=-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)
		{
			//fisOUT<<"Se actioneaza asupra coloanei "<<j+1;
			for(i=0; i<m; i++)
			{
				flip[i][j]*=-1;
			}
		}
	}
	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)
		{
			//fisOUT<<"Se actioneaza asupra liniei "<<i+1;
			for(j=0; j<n; j++)
			{
				flip[i][j]*=-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();
}