Cod sursa(job #274405)

Utilizator darrenRares Buhai darren Data 9 martie 2009 18:20:22
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include<fstream.h>

long val(long j)
{
	if (j<0)
	j*=-1;

	return j;
}

int main()
{
	ifstream fin("flip.in");
	ofstream fout("flip.out");
	long n,m,x[16][16];
	int i,j,t;
	long sneg=0,spoz=0;

        fin>>n>>m;

	for (i=0;i<n;i++)
	{
		spoz=0;
                sneg=0;
		for (j=0;j<m;j++)
		{
			fin>>x[i][j];
			if (x[i][j]>0)
			spoz+=x[i][j];
			else
			sneg+=val(x[i][j]);
		}
		if (sneg>spoz)
			for (t=0;t<m;t++)
			x[i][j]*=-1;
	}

	short int ok=0;

	while (ok==0)
	{
		ok=1;
		sneg=0;
		spoz=0;
		for (i=0;i<n;i++)
		{
		sneg=0;
		spoz=0;
		for (j=0;j<m;j++)
			{
			if (x[i][j]>0)
			spoz+=x[i][j];
			else
			sneg+=val(x[i][j]);
			}
		if (sneg>spoz)
		{
			for (t=0;t<m;t++)
			x[i][t]*=-1;
			ok=0;
		}
		}
		for (j=0;j<m;j++)
		{
		sneg=0;
		spoz=0;
			for (i=0;i<n;i++)
			{
			if (x[i][j]>0)
			spoz+=x[i][j];
			else
			sneg+=val(x[i][j]);
			}
		if (sneg>spoz)
		{
			for (t=0;t<n;t++)
			x[t][j]*=-1;
			ok=0;
		}
		}
	}
	long sum=0;

	for (i=0;i<n;i++)
		for (j=0;j<m;j++)
		sum+=x[i][j];

	fout<<sum;



	fin.close();
	fout.close();
	return 0;
}