Cod sursa(job #84508)

Utilizator horiama1Mania Horia horiama1 Data 15 septembrie 2007 19:34:46
Problema Jocul Flip Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int s[16];
int main()
{
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
int n,m,v[16][16],i,j,t=0,aux[16][16],tp,p,k,i2,j2,gata=0,q;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
	for(j=0;j<m;j++)
	{
		scanf("%d",&v[i][j]);
		t+=v[i][j];
		aux[i][j]=v[i][j];
	}
j=0;
q=0;
	while(!gata)
	{
		tp=0;
		for(j=0;j<m;j++)
			if(s[j])
				for(i=0;i<n;i++)
				{
					v[i][j]=-v[i][j];
					q=1;
				}
				for(i=0;i<n&&q;i++)
				{
					p=0;
					v[i][j]=-v[i][j];
					for(k=0;k<m;k++)
						p+=v[i][k];
					if(p<0)
					for(k=0;k<m;k++)
						v[i][k]=-v[i][k];
					tp+=abs(p);
					q++;
				}
		for(j=0;j<m&&s[j];j++)
			s[j]=0;
		if(j==m)
			gata=1;
		else
			s[j]=1;
		if(tp>t&&q!=0)
			t=tp;
		for(i2=0;i2<n;i2++)
			for(j2=0;j2<m;j2++)
				v[i2][j2]=aux[i2][j2];

}
printf("%d",t);
return 0;
}