Cod sursa(job #277349)

Utilizator alisssiaMititelu Andra alisssia Data 11 martie 2009 17:39:58
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
using namespace std;
#include<cstdio>
#define N 16
int a[N][N],s1,s2,ok=1;
int i,j,n,m;

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

int main()
{
	freopen("flip.in","r",stdin);
	scanf("%d%d",&n,&m);
	for(i=0;i<n;i++)
		for(j=0;j<m;j++)
			scanf("%d",&a[i][j]);
	while(ok)
	{
		ok=0;
	for(i=0;i<n;i++)
	{
		s1=0;
		s2=0;
		for(j=0;j<m;j++)
			if(a[i][j]>0) s1+=a[i][j];
			else s2+=a[i][j];
		if(s1<-s2) {lin(i);ok=1;} 
	}
	for(i=0;i<m;i++)
	{
		s1=0;
		s2=0;
		for(j=0;j<n;j++)
			if(a[j][i]>0)s1+=a[j][i];
			else s2+=a[j][i];
		if(s1<-s2) {col(i);ok=1;} 
	}
	}
	s1=0;
	for(i=0;i<n;i++)
		for(j=0;j<m;j++)
			s1+=a[i][j];
	freopen("flip.out","w",stdout);
	printf("%d\n",s1);
	return 0;
}