Cod sursa(job #682568)

Utilizator GabyyGabriel Niculae Gabyy Data 19 februarie 2012 10:34:05
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>

using namespace std;

int s,n,m;
long final,v[16][16],sol[2][16];

void suma()
{
	int i,j;
	s=0;
	for(i=0;i<n;i++)
		for(j=0;j<m;j++)
		{
			if(sol[0][i]==1 && sol[1][j]==1) s=s+ v[i][j];
			else if(sol[0][i]==1 || sol[1][j]==1) s=s+ v[i][j]*(-1);
			else s=s+v[i][j];
		}
	if(final<s) final=s;
	//cout<<s<<" ";
}
void back(int a, int b)
{
	//if(a==n+1 && b==m+1) 
	suma();
	if(a<n)
	{
		sol[0][a]=1;
		back(a+1,b);
		if(b<m)
		{
			sol[1][b]=1;
			back(a,b+1);
			sol[1][b]=0;
			back(a,b+1);
		}
		sol[0][a]=0;
		back(a+1,b);
	}
}

int main()
{
	int i,j;
	ifstream f("flip.in");
	ofstream g("flip.out");
	f>>n>>m;
	for(i=0;i<n;i++)
		for(j=0;j<m;j++)
			f>>v[i][j];
	f.close();
	
	back(0,0);
	
	g<<final;
	g.close();
	return 0;
}