Cod sursa(job #8438)

Utilizator encubeEugen Varzaru encube Data 24 ianuarie 2007 19:32:19
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<stdio.h>

long a[16][16],m,n;

long suma()
{
long s=0,i,j;
for(i=0;i<n;i++)
	for(j=0;j<m;j++)
		s=s+a[i][j];
return s;
}

long changecol(long col)
{
long i,j;
for(i=0;i<n;i++)
	for(j=0;j<m;j++)
		if(j==col) a[i][j]=a[i][j]*-1;
return 0;
}

long changeline(long line)
{
long i,j;
for(i=0;i<n;i++)
	for(j=0;j<m;j++)
		if(i==line) a[i][j]=a[i][j]*-1;
return 0;
}

int main()
{
long i,j,oldsum,sum,initsum;
int x;
FILE *fin=fopen("flip.in","r");
FILE *fout=fopen("flip.out","w");
fscanf(fin,"%d",&n);
fscanf(fin,"%d",&m);
for(i=0;i<n;i++)
	for(j=0;j<m;j++)
		{
		fscanf(fin,"%d",&x);
		a[i][j]=x;
		}
oldsum=suma();
initsum=suma();
for(i=0;i<n;i++)
	{
	changeline(i);
	sum=suma();
	if(oldsum>sum) changeline(i);
	oldsum=sum;
	}
for(j=0;j<m;j++)
	{
	changecol(j);
	sum=suma();
	if(oldsum>sum) changecol(j);
	oldsum=sum;
	}
sum=suma();
if(sum<0) sum=initsum;
if(sum<initsum) sum=initsum;
fprintf(fout,"%d",sum);
fclose(fin);
fclose(fout);
return 0;
}