Cod sursa(job #525660)

Utilizator eudummyEduard eudummy Data 25 ianuarie 2011 19:20:32
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
using namespace std;
long max(long a[], long x, long &z)
{
	long m1=a[0];
	for (long i=1;i<x;i++)
		if (m1<a[i])
		{
			z=i;
			m1=a[i];
		}
	return m1;
}
int main()
{
	long int n,m,i,j,s=0,a[20][20],l[20],c[20],m1,m2,z1,z2;
	ifstream f("flip.in");
	ofstream g("flip.out");
	f>>n>>m;
	for (i=0;i<=n+1 || i<=m+1;i++)
	{
		l[i]=0;
		c[i]=0;
	}
	for (i=0;i<n;i++)
		for (j=0;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,z1);
		m2=max(l,n,z2);
		if (m1>m2)
		{
			if (m1>0)
			{
				for (i=0;i<n;i++)
				{
					a[i][z1]=-a[i][z1];
					l[i]=l[i]-2*a[i][z1];
					c[z1]=-c[z1];
				}
				k=1;
			}
		}
		else
			if (m2>0)
			{
				for (j=0;j<m;j++)
				{
					a[z2][j]=-a[z2][j];
					c[j]=c[j]-2*a[z2][j];
					l[z2]=-l[z2];
				}
				k=1;
			}
	}
	for (i=0;i<n;i++)
		s-=l[i];
	g<<s;
}