Cod sursa(job #443821)

Utilizator crushackPopescu Silviu crushack Data 18 aprilie 2010 15:26:00
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <stdio.h>
#define lung 20

int a[lung][lung];
int max,n,m,s;
void bkt(int,int);


int main()
{
	int su,i,j;
	freopen("flip.in","r",stdin);
	freopen("flip.out","w",stdout);
	scanf("%d%d",&n,&m);
	su=0;s=n+m;
	for (i=0;i<n;i++)
		for (j=0;j<m;j++)
		{
			scanf("%d",&a[i][j]);
			su+=a[i][j];
		}
	max=su;
	bkt(0,su);
	printf("%d\n",max);
	fclose(stdout);
	return 0;
}

void bkt(int x,int su)
{
	if (x==s && su>max) 
		{max=su;return;}
	int k=0;int i;
	bkt(x+1,su);
	if (x>=n)
	{
		for (i=0;i<n;i++)
			k+=a[x][i];
		if (su-2*k>su)
			bkt(x+1,su-2*k);
	}
	else
	{
		for (i=0;i<m;i++)
			k+=a[i][x];
		if (su-2*k>su)
			bkt(x+1,su-2*k);
	}
}