Cod sursa(job #222850)

Utilizator razyelxrazyelx razyelx Data 25 noiembrie 2008 19:11:27
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<fstream.h>
long long n,k,ev,as,s,Ts,m,a[17][17],st[100];
ifstream in("flip.in");
ofstream out("flip.out");
void init(){
		st[k]=-1;

}
int succesor(){
	if(st[k]<1){
		st[k]++;
		return 1;
	}else
		return 0;

}
int valid(){
	return 1;
}
int solutie(){
	return k==n+m;
}
void tipar(){
	int p,j;
	s=0;
	for(int i=1;i<=n;i++)
	   for(j=1,p=n+1;j<=m;j++,p++)
		if(st[i] == st[p]) s += a[i][j];
		else s-=a[i][j];
	if(s>Ts)Ts=s;

}
void bt(){
	k=1;
	init();
	while(k){
		as=1;ev=0;
		while(as && !ev){
			as=succesor();
			if(as) ev=valid();
		}
		if(as)
			if(solutie()){tipar();}
			else{k++;init();}
		else
			k--;
	}
}
int main(){
	int j;
	in>>n>>m;
	for(int i=1;i<=n;i++)
		for(j=1;j<=m;j++)
			in>>a[i][j];
	bt();
	out<<Ts;
	return 0;
}