Cod sursa(job #324498)

Utilizator darrenRares Buhai darren Data 16 iunie 2009 12:41:35
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<fstream.h>
#include<math.h>

long x[16][16];

struct sum
{
	long poz;
	long neg;
};

sum a[16],b[16];

long n,m;

int main()
{
	ifstream fin("flip.in");
	ofstream fout("flip.out");


	fin>>n>>m;
	long i,j;

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

	int k=1;

	int aux;

	while (k)
	{
		k=0;
		for (i=0;i<n && !k;i++)
		{
			for (j=0;j<m;j++)
				if (x[i][j]>0)
				a[i].poz+=x[i][j];
				else
				a[i].neg+=abs(x[i][j]);

			if (a[i].poz<a[i].neg)
			{
				k=1;
				for (aux=0;aux<m;aux++)
					x[i][aux]*=-1;
			}
		}

		for (j=0;j<m && !k;j++)
		{
			for (i=0;i<n;i++)
				if (x[i][j]>0)
				b[j].poz+=x[i][j];
				else
				b[j].neg+=abs(x[i][j]);

			if (b[j].poz<b[j].neg)
			{
				k=1;
				for (aux=0;aux<n;aux++)
					x[aux][j]*=-1;
			}
		}
	}

	int max=0;

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

	fout<<max;

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