Cod sursa(job #682591)

Utilizator GabyyGabriel Niculae Gabyy Data 19 februarie 2012 11:04:38
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 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 back2(int b)
{
	if(b<m)
	{
		sol[1][b]=-1;
		while(sol[1][b]<1)
		{
			sol[1][b]++;
			back2(b+1);
			suma();
		}
	}
}
void back(int a)
{
	if(a<n)
	{
		sol[0][a]=-1;
		while(sol[0][a]<1)
		{
			sol[0][a]++;
			back(a+1);
			back2(0);
		}
	}
}

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);
	
	g<<final;
	g.close();
	return 0;
}