Cod sursa(job #305793)

Utilizator AplayLazar Laurentiu Aplay Data 18 aprilie 2009 16:50:10
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<stdio.h>
FILE*f=fopen("flip.in","r");
long a[16][16],i,j,n,m,b;
float sn,sp;
int main()
{
	fscanf(f,"%ld%ld",&n,&m);
	for(i=0;i<n;i++)
		for(j=0;j<m;j++)
			fscanf(f,"%ld",&a[i][j]);
	do
	{
		b=1;
		for (i=0;i<n;i++)
		{
			sp=sn=0;
			for(j=0;j<m;j++)
				if(a[i][j]>0) sp+=a[i][j];
				else sn+=a[i][j];
			if(sn*(-1)>sp)
			{
				b=0;
				for(j=0;j<m;j++)
					a[i][j]*=-1;
			}
		}
		for(j=0;j<m;j++)
		{
			sp=sn=0;
			for(i=0;i<n;i++)
				if(a[i][j]>0) sp+=a[i][j];
				else sn+=a[i][j];
			if(sn*(-1)>sp) 
			{
				b=0;
				for(i=0;i<n;i++)
					a[i][j]*=-1;
			}
		}
	}while(!b);
	sp=0;
	for(i=0;i<n;i++)
		for(j=0;j<m;j++)
			sp+=a[i][j];
	fclose(f);
	f=fopen("flip.out","w");
	fprintf(f,"%.0f",sp);
	fclose(f);
	return 0;
}