Cod sursa(job #216792)

Utilizator Bogdan_tmmTirca Bogdan Bogdan_tmm Data 25 octombrie 2008 21:27:49
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
#include<iostream>
#include<stdio.h>
FILE *f,*g;
using namespace std;

int main()
{
	long s1,s2,max=0,max1=0;
	int i,j,m,n,a[20][20];
	f=fopen("flip.in","r");
	g=fopen("flip.out","w");
	fscanf(f,"%d %d\n",&m,&n);
	for(i=1;i<=m;i++)
	{
		for(j=1;j<=n;j++)
			fscanf(f,"%d ",&a[i][j]);
		fscanf(f,"\n");
	}

	for(i=1;i<=m;i++)
	{
		s1=s2=0;
		for(j=1;j<=n;j++)
			if(a[i][j]<0) s1+=a[i][j];
			else
				s2+=a[i][j];
		if((-s1)>s2) 
			for(j=1;j<=n;j++)
				a[i][j]*=-1;
	}
	for(j=1;j<=n;j++)
	{
		s1=s2=0;
		for(i=1;i<=m;i++)
			if(a[i][j]<0) s1+=a[i][j];
			else
				s2+=a[i][j];
		if((-s1)>s2)
			for(i=1;i<=m;i++)
				a[i][j]*=-1;
	}
	for(i=1;i<=m;i++)
		for(j=1;j<=n;j++)
			max+=a[i][j];
	for(j=1;j<=n;j++)
	{
		s1=s2=0;
		for(i=1;i<=m;i++)
			if(a[i][j]<0) s1+=a[i][j];
			else
				s2+=a[i][j];
		if((-s1)>s2)
			for(i=1;i<=m;i++)
				a[i][j]*=-1;
	}
	for(i=1;i<=m;i++)
	{
		s1=s2=0;
		for(j=1;j<=n;j++)
			if(a[i][j]<0) s1+=a[i][j];
			else
				s2+=a[i][j];
		if((-s1)>s2) 
			for(j=1;j<=n;j++)
				a[i][j]*=-1;
	}
	for(i=1;i<=m;i++)
		for(j=1;j<=n;j++)
			max1+=a[i][j];
	int maxx;
	if(max1>max) maxx=max1;
	else maxx=max;
	fprintf(g,"%d",maxx);
return 0;
}