Cod sursa(job #160759)

Utilizator andrei-alphaAndrei-Bogdan Antonescu andrei-alpha Data 16 martie 2008 19:54:28
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <stdio.h>
#define N 18
int mat[N][N];
int n,m;
int main()
{
	int i,j,sumneg,sumpoz;
	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", &mat[i][j]);
	
	/*for(i=1;i<=n;++i) {printf("\n");
		for(j=1;j<=m;++j)
			printf("%d ",mat[i][j]); }
	printf("\n");*/
		
		
	for(i=1;i<=n;++i)
	{
		sumneg=0; sumpoz=0;
		for(j=1;j<=m;++j)
		{
			if(mat[i][j]<0)
				sumneg+=mat[i][j];
			else 
				sumpoz+=mat[i][j];
		}
		if(sumneg<-sumpoz)
			for(j=1;j<=m;++j)
				mat[i][j]=-mat[i][j];
	}	

	/*for(i=1;i<=n;++i) {printf("\n");
		for(j=1;j<=m;++j)
			printf("%d ",mat[i][j]); }
	printf("\n");*/
	
	for(i=1;i<=m;++i)
	{
		sumneg=0; sumpoz=0;
		for(j=1;j<=n;++j)
		{
			if(mat[j][i]<0)
				sumneg+=mat[j][i];
			else 
				sumpoz+=mat[j][i];
		}
		if(sumneg<-sumpoz)
			for(j=1;j<=n;++j)
				mat[j][i]=-mat[j][i];
	}	
	
	/*for(i=1;i<=n;++i) {printf("\n");
		for(j=1;j<=m;++j)
			printf("%d ",mat[i][j]); }
	printf("\n");*/
	
	int s=0;
	for(i=1;i<=n;++i)
		for(j=1;j<=m;++j)
			s+=mat[i][j];
	printf("%d", s);	
	return 0;
}