Cod sursa(job #687492)

Utilizator StefanFaibla blah StefanFai Data 22 februarie 2012 14:51:08
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<fstream>
using namespace std;
int c[17],l[17],n,m,s,smax,x[17];

ifstream f("flip.in");
ofstream g("flip.out");
	
int verif(int i)
{
	if(i==1)
		return 1;
	if(x[i]<=x[i-1])
		return 0;
	return 1;
}

void back(int i)
{
	int j,k;
	for(j=-n;j<=m;j++)
		if(j!=0)
		{
			x[i]=j;
			if(verif(i))
			{
				if(x[i]<0)
					s=s-2*l[-x[i]];

				else
					s=s-2*c[x[i]];
				if(s>smax)
					smax=s;
				back(i+1);
				if(x[i]<0)
					s=s+2*l[-x[i]];
				else
					s=s+2*c[x[i]];
			}
		}
}
			

int main()
{
	
	int i,j,a[17][17];
	f>>n>>m;
	for(i=1;i<=n;i++)
		for(j=1;j<=m;j++)
		{
			f>>a[i][j];
			c[j]=c[j]+a[i][j];
			l[i]=l[i]+a[i][j];
			s=s+a[i][j];
		}
	smax=s;
	back(1);
	g<<smax;
	f.close();
	g.close();
	return 0;
}