Cod sursa(job #373985)

Utilizator GotenAmza Catalin Goten Data 15 decembrie 2009 16:57:26
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<fstream.h>

int n,m,i,k,j,jj,x[20],u,S,s,smax,a[20][20];

int main()
{
	ifstream f("flip.in");
	ofstream g("flip.out");
	f>>n>>m;
	for(i=1;i<=n;i++)
		for(j=1;j<=m;j++)
			f>>a[i][j];
	for(i=1;i<=n;i++)
		for(j=1;j<=m;j++)
			smax+=a[i][j];
	for(i=1;i<=n;i++)
	{
		x[1]=0;
		k=1;
		while(k)
		{
			x[k]++;
			if(k==i)
			{
				for(j=1;j<=k;j++)
					for(jj=1;jj<=m;jj++)
						a[x[j]][jj]=-a[x[j]][jj];
				S=0;
				for(j=1;j<=m;j++)
				{
					s=0;
					for(jj=1;jj<=n;jj++)
						s+=a[jj][j];
					if(s>0)S+=s;
					else S-=s;
				}
				if(S>smax)smax=S;
				for(j=1;j<=k;j++)
					for(jj=1;jj<=m;jj++)
						a[x[j]][jj]=-a[x[j]][jj];
				u=0;
				while(x[k-u]==n-u)u++;
				k-=u;
			}
			else 
			{
				k++;
				x[k]=x[k-1];
			}
		}
	}
	g<<smax;
	return 0;
}