Cod sursa(job #711534)

Utilizator dutzulBodnariuc Dan Alexandru dutzul Data 12 martie 2012 12:21:20
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <cstdio>
#define LE 40
#define FOR 	for(i=1;i<=n;++i) for(j=1;j<=m;++j)
#define ll long long 
using namespace std;
ll  MAX=0, n,semn[LE],i,semn2[LE],m,a[LE][LE],s[LE],j,ma[LE][LE];
ll sum()
{
	ll REZ=0;
	FOR a[i][j]=ma[i][j];
	FOR if (semn[i]) a[i][j]*=-1;
    FOR s[j]+=a[i][j];
	
    for(i=1;i<=m;++i) 
		if (s[i]<0) semn2[i]=1; else semn2[i]=0;
	
    FOR {
		if (semn2[j])  a[i][j]*=-1;
		REZ+=a[i][j];
        }
		if (REZ>MAX) MAX=REZ;
}
ll bkt(int k)
{
	if (k==n+1) sum();
	else{
	  semn[k]=0,bkt(k+1);
	  semn[k]=1,bkt(k+1);
	}		
}
int main()
{
	freopen("flip.in","r",stdin);freopen("flip.out","w",stdout);
	scanf("%lld%lld",&n,&m);
	FOR scanf("%lld",&ma[i][j]);

    bkt(1);
	
	printf("%lld\n",MAX);
return 0;	
}