Cod sursa(job #525245)

Utilizator octavianvasluioctavian octavianvaslui Data 24 ianuarie 2011 17:57:24
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>
using namespace std;
long z;
long max(long a[], long x)
{
	long m1=a[1];
	for (long i=2;i<=x;i++)
		if (m1<a[i])
		{
			z=i;
			m1=a[i];
		}
	return m1;
}
int main()
{
	long int n,m,i,j,s,a[20][20],l[20],c[20],m1,m2;
	ifstream f("flip.in");
	ofstream g("flip.out");
	f>>n>>m;
	for (i=1;i<=n+1 || i<=m+1;i++)
	{
		l[i]=0;
		c[i]=0;
	}
	for (i=1;i<=n;i++)
		for (j=1;j<=m;j++)
		{
			f>>a[i][j];
			c[j]=c[j]-a[i][j];
			l[i]=l[i]-a[i][j];
		}
	int k=1;
	while (k)
	{
		k=0;
		m1=max(c,m);
		m2=max(l,n);
		if (m1>m2)
		{
			if (m1>0)
			{
				for (i=1;i<=n;i++)
				{
					a[i][z]=-a[i][z];
					l[i]=l[i]-2*a[i][z];
					c[z]=-c[z];
				}
				k=1;
			}
		}
		else
			if (m2>0)
			{
				for (j=1;i<=m;i++)
				{
					a[z][j]=-a[z][j];
					c[j]=c[j]-2*a[z][j];
					l[z]=-l[z];
				}
				k=1;
			}
	}
	for (i=1;i<=n;i++)
		s+=l[i];
	g<<s;
}