Cod sursa(job #784325)

Utilizator adascaluAlexandru Dascalu adascalu Data 5 septembrie 2012 15:41:16
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
using namespace std;
#include<fstream>
long long smax=-(1<<64),s;
int i,j,n,m,a[17][17];
bool st[289];
ifstream f("flip.in");
ofstream g("flip.out");
void check();
void bkt(int k)
{
	if(k>n*m)
		check();
	else
	{
		st[k]=false;
		bkt(k+1);
		st[k]=true;
		bkt(k+1);
	}
}
void check()
{
	s=0;
	bool stst[17][17];
	int l=1,c=1;
	for(int k=1;k<=n*m;k++)
	{	
		if(!(k%m))
			++l,c=1;
		stst[l][c]=st[k];
		c++;
	}
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			if(stst[i][j])
				s+=a[i][j];
			else
				s+=(-1)*a[i][j];
	if(s>smax)
		smax=s;
}
int main ()
{
	
	f>>n>>m;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			f>>a[i][j],smax+=a[i][j];
	bkt(1);
	g<<smax;
	f.close();
	g.close();
}