Cod sursa(job #592234)

Utilizator morlockRadu Tatomir morlock Data 27 mai 2011 10:33:42
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <stdio.h>

int N, M, i, j, sp=0, sn=0, suma=0;
long a[20][20];

void flipl(int p)
{
	for (int k=1; k<=M; ++k)
		a[p][k] *= -1; 
}

void flipi(int p)
{
	for (int k=1; k<=N; ++k)
		a[k][p] *= -1;
}

int main()
{ 
	
	freopen("flip.in", "r", stdin);
	freopen("flip.out", "w", stdout);
	
	scanf("%d %d", &N, &M);
	
	for (i=1; i<=N; ++i)
		for (j=1; j<=M; ++j)
			scanf("%d", &a[i][j]);

	
	for (i=1; i<=N; ++i)
	{
		sp=0;
		sn=0;
		for (j=1; j<=M; ++j)
		{
			a[i][j] > 0 ? sp += a[i][j] : sn += a[i][j] ;
		}
		
		sn *= -1;
		
		if ( sn > sp ) flipl(i);
	}
	
	for (j=1; j<=M; ++j)
	{
		sp=0;
		sn=0;
		for (i=1; i<=N; ++i)
		{
			a[i][j] > 0 ? sp += a[i][j] : sn += a[i][j] ;
		}
		
		sn *= -1;
		
		if ( sn > sp ) flipi(j); 
	}
	
	for (i=1; i<=N; ++i)
	{
		for (j=1; j<=M; ++j)
			suma += a[i][j];
	}
	

	printf("%d", suma);
	
return 0;	
}