Cod sursa(job #245711)

Utilizator drag0s93Mandu Dragos drag0s93 Data 18 ianuarie 2009 18:20:39
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<stdio.h>
int n,m,v[17][17];
int sum1,sum2;
void matrice()
{
	for(int i=1;i<=n;++i)
		for(int j=1;j<=m;++j)
			scanf("%d",&v[i][j]);
}
void coloana(int p)
{
	sum1=0;
	sum2=0;
	for(int i=1;i<=n;++i)
	{
		sum1+=v[i][p];
		sum2+=(-v[i][p]);
	}
}
void flip1(int p)
{
	for(int i=1;i<=n;++i)
		v[i][p]*=(-1);
}
void linie(int t)
{
	sum1=0;
	sum2=0;
	for(int i=1;i<=m;++i)
	{
		sum1+=v[t][i];
		sum2+=(-v[t][i]);
	}
}
void flip2(int t)
{
	for(int i=1;i<=m;++i)
		v[t][i]*=(-1);
}
int main()
{
	int suma=0;
	freopen("flip.in","r",stdin);
	freopen("flip.out","w",stdout);
	scanf("%d%d",&n,&m);
	matrice();
	for(int p=1;p<=m;++p)
	{
		coloana(p);
		if(sum1<sum2)
		{
			flip1(p);
			suma+=sum2;
		}
		else suma+=sum1;
	}
	for(int t=1;t<=n;++t)
	{
		linie(t);
		if(sum1<sum2)
		{
			flip2(t);
			suma=suma-sum1+sum2;
		}
	}
	printf("%d",suma);
	return 0;
}