Cod sursa(job #130346)

Utilizator RockManIzsak Istvan RockMan Data 31 ianuarie 2008 21:21:06
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<stdio.h>
long t[1<<4][1<<4];
int n,m;
long double max;
void beolvas()
{
	int i,j;
	FILE *f=fopen("flip.in","r");
	fscanf(f,"%d%d",&n,&m);
	for(i=0;i<n;i++)
		for(j=0;j<m;j++)
			fscanf(f,"%ld",&t[i][j]);
	fclose(f);

}
int optimizal()
{
	int tal=0,i,j;
	long double s1,s2;
	for(i=0;i<n;i++)
	{
		s1=s2=0;
		for(j=0;j<m;j++)
		{
			s1+=t[i][j];
			s2+=(-t[i][j]);
		}
		if(s2>s1)
			for(j=0,tal=1;j<m;t[i][j++]*=(-1));
	}
	for(i=0;i<m;i++)
	{
		s1=s2=0;
		for(j=0;j<n;j++)
		{
			s1+=t[j][i];
			s2+=(-t[j][i]);
		}
		if(s2>s1)
			for(j=0,tal=1;j<n;t[j][i]*=(-1),j++);
	}
	return tal;
}
void megold()
{
	while(optimizal());
	int i,j;
	for(i=0;i<n;i++)
		for(j=0;j<m;j++)
			max+=t[i][j];
}
void kiir()
{
	FILE *f=fopen("flip.out","w");
	fprintf(f,"%.0Lf",max);
	fclose(f);
}
int main()
{
	beolvas();
	megold();
	kiir();
	return 0;
}