Cod sursa(job #716287)

Utilizator DaniLLeu Daniel DaniL Data 18 martie 2012 15:53:20
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include<fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int n , m , s[100],nr=0,maxx=0,S[100],a[100][100];
void init(int k)
{
	s[k]=-1;
}

int succesor(int k)
{
	if(s[k]<1){
		s[k]++; 
		return 1;
	}
	else 
		return 0;
}
int valid(int k)
{ 
		
	return 1;
}
int solutie(int k)
{int ss=0 , i , j;
	if(k==m){
		for (i=1;i<=n;i++)
			S[i] = 0;
		for(i=1;i<=m;i++)
		{
			if(s[i]==1)
			{
				for(j=1;j<=n;j++)
					S[j] += -a[j][i];
			} else  {
				for(j=1;j<=n;j++)
					S[j] += a[j][i];
			}
	
	
	
		}	
		for(i=1;i<=n;i++)
				if(S[i]>0)ss=ss+S[i];
			else ss=ss+(S[i]*-1);
			
		if(ss>maxx)maxx=ss;
		return 1;
	}
	else return 0;
}
void tipar()
{
return;
}


void bt(int k)
{
	while(succesor(k))
		if(valid(k))
				if(solutie(k))
						tipar();
				else {
					init(k+1);
					bt(k+1);
				}
				
}

int main()
{
	
	f>>n;
	f>>m;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			f>>a[i][j];
	s[1] = -1;
	bt(1);
g<<maxx;
	return 0;
}