Cod sursa(job #992301)

Utilizator iarbaCrestez Paul iarba Data 1 septembrie 2013 17:03:44
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <cstdio>
using namespace std;
long a[33][33],lin[33],i,max,s,j,n,m;
long abss(long x){if(x<0){x*=-1;}return x;}
void back(int poz)
{
	//noflip
	if(poz==m){
		s=0;
		for(i=1;i<=n;i++){s+=abss(lin[i]);}
		if(s>max){max=s;}
			  }
	else{back(poz+1);}
	//flip
	for(i=1;i<=n;i++){lin[i]-=2*a[i][poz];}
	if(poz==m){
		s=0;
		for(i=1;i<=n;i++){s+=abss(lin[i]);}
		if(s>max){max=s;}
			  }
	else{back(poz+1);}
	for(i=1;i<=n;i++){lin[i]+=2*a[i][poz];}
}
int main()
{
	freopen("flip.in","r",stdin);
	freopen("flip.out","w",stdout);
	scanf("%ld%ld",&n,&m);
	for(i=1;i<=n;i++){
		for(j=1;j<=m;j++){
			scanf("%ld",&a[i][j]);
			lin[i]+=a[i][j];
						 }
					 }
	back(1);
	printf("%ld",max);
	
return 0;
}