Cod sursa(job #502423)

Utilizator eudummyEduard eudummy Data 19 noiembrie 2010 13:35:05
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream.h>
using namespace std;
int main()
{
	long int a,v[17][17],c[17],l[17];
	int i,j,n,m,b,max;
	ifstream f ("flip.in");
	ofstream g ("flip.out");
	f>>n>>m;
	a=max=0;
	for (i=0;i<17;i++)c[i]=l[i]=0;
	for (i=0;i<n;i++)
		for (j=0;j<m;j++)
		{
			f>>v[i][j];
			l[i]+=v[i][j];
			c[j]+=v[i][j];
			a+=v[i][j];
		}
	b=1;
	max=a;
	while (b)
	{
		b=0;
		for (i=0;i<n;i++)
			if (l[i]<0)
			{
				if (max<(a-2*l[i]))
				{
					l[i]=-l[i];
					a+=(2*l[i]);
					b=1;
					for (j=0;j<m;j++)
						c[j]-=2*v[i][j];
					max=a;
				}
			}
		for (i=0;i<m;i++)
			if (c[i]<0)
			{
				if (max<(a-2*c[i]))
				{
					c[i]=-c[i];
					a+=(2*c[i]);
					b=1;
					for (j=0;j<n;j++)
						l[j]-=2*v[j][i];
					max=a;
				}
			}
	}
	g<<max;
	return 0;
}