Cod sursa(job #350061)

Utilizator siminescuPaval Cristi Onisim siminescu Data 22 septembrie 2009 16:30:21
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<fstream>
using namespace std;
int a[17][17],lin[17],col[17],b[17][17];
int main()
{
	int smax=0,i,j,ii,jj,s,p,n,m,sum;
	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];
			sum=sum+a[i][j];
		}
	for(i=1;i<=(1<<n);i++)
	{
		p=n;
		lin[p]++;
		while(lin[p]==2)
		{
			lin[p]=0;
			p--;
			lin[p]++;
		}
		for(j=1;j<=(1<<m);j++)
		{
			s=sum;
			p=m;
			col[p]++;
			while(col[p]==2)
			{
				col[p]=0;
				p--;
				col[p]++;
			}
			for(ii=1;ii<=n;ii++)
			{
				if(lin[ii]==1)
					for(jj=1;jj<=m;jj++)
						s=s-2*a[ii][jj];
			}
			for(jj=1;jj<=m;jj++)
			{
				if(col[jj]==1)
					for(ii=1;ii<=n;ii++)
						s=s-2*a[ii][jj];
			}
			if(s>smax)
				smax=s;
		}
	}

	g<<smax<<'\n';
	
	f.close();
	g.close();
	return 0;
}