Cod sursa(job #503764)

Utilizator allexx2200Atanasiu Alexandru-Marian allexx2200 Data 24 noiembrie 2010 20:57:32
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<iostream.h>
#include<fstream.h>
long int a[17][17];
int M,N,g;
void mutareL(int i)
{
	int j;
	long int S1,S2;
	S1=0; S2=0;
	for(j=1;j<=M;j++)
		{
			if(a[i][j]>0)
				S1=S1+a[i][j];
			else
				S2=S2-a[i][j];
		}
	if(S2>S1)
		{
			for(j=1;j<=M;j++)
				a[i][j]=-a[i][j];
			g=1;
		}
}
void mutareC(int j)
{
	int i;
	long int S1,S2;
	S1=0; S2=0;
	for(i=1;i<=N;i++)
		{
			if(a[i][j]>0)
				S1=S1+a[i][j];
			else
				S2=S2-a[i][j];
		}
	if(S2>S1)
		{
			for(i=1;i<=M;i++)
				a[i][j]=-a[i][j];
			g=1;
		}
}
int main()
{
	long int S;
	int i,j;
	int g;
	fstream f("flip.in", ios::in);
	fstream h("flip.out", ios::out);
	f>>M>>N;
	for(i=1;i<=M;i++)
		for(j=1;j<=N;j++)
			f>>a[i][j];
	g=1;
	while(g==1)
	{
		g=0;
		for(i=1;i<=M;i++)
			mutareL(i);
		for(j=1;j<=N;j++)
			mutareC(j);
	}
	for(S=0,i=1;i<=M;i++)
		for(j=1;j<=N;j++)
			S=S+a[i][j];
	h<<S;
}