Cod sursa(job #239082)

Utilizator moonbeamElma Moonbeam moonbeam Data 4 ianuarie 2009 00:26:32
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<stdio.h>
#define N 17
int a[N][N],n,m,suma,s[N],s1[N],suma1;
void modific(int x)
{
	for (int i=1; i<=m; ++i)
		a[x][i]=a[x][i]*(-1);
	s[x]=s[x]*(-1);
}
void citire()
{
	scanf("%d%d",&n,&m);
	for (int i=1; i<=n ; ++i)
	{
		for (int j=1; j<=m ;++j)
		{
			scanf("%d",&a[i][j]);
			s[i]=s[i]+a[i][j];
		}
		if (s[i]<0)
			modific(i);
		suma=suma+s[i];
	}
}
void schimb(int x)
{
	for (int i=1; i<=n; ++i)
	{
		a[i][x]=a[i][x]*(-1);
		suma=suma-s[i];
		s[i]=s[i]+2*a[i][x];
		suma+=s[i];
	}
	s1[x]=s1[x]*(-1);
}
void solve()
{
	int i;
	for (int j=1; j<=m; ++j)
	{
		for (i=1; i<=n;++i)
			s1[j]+=a[i][j];
		if (s1[j]<0)
			schimb(j);
		suma1=suma1+s1[i];
	}
}
int main()
{
	freopen("flip.in","r",stdin);
	freopen("flip.out","w",stdout);
	citire();
	solve();
	if (suma>=suma1)
		printf("%d",suma);
	else
		printf("%d",suma1);
	return 0;
}