Cod sursa(job #482931)

Utilizator Daniel30daniel Daniel30 Data 6 septembrie 2010 11:08:58
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <stdio.h>
int n,m,v[20],s[20],a[20][20],max=-765878,s2[20],sum,k,i,j;
int main()
{freopen("flip.in","r",stdin);
 freopen("flip.out","w",stdout);
 scanf("%d %d",&n,&m);
 for (i=1;i<=n;++i)
	for (j=1;j<=m;++j)
		{scanf("%d",&a[i][j]);s[j]+=a[i][j];s[0]+=a[i][j];s2[j]-=a[i][j];}
		sum=s[0];
 for (;;)	
	{for (i=1;i<=m;++i)
			if (v[i]==0) {v[i]=1;sum+=s2[i]-s[i];break;} else v[i]=0,sum+=s[i]-s2[i];
		if (i>m) break;
		int k=sum;	
		for (i=1;i<=n;++i)
		{int sl=0,sl2=0;
			for (j=1;j<=m;++j)
				if (!v[j]) sl+=a[i][j],sl2-=a[i][j]; else
					sl2+=a[i][j],sl-=a[i][j];
			if (sl2>sl) k+=sl2-sl;
        }
		if (k>max)
			max=k;
   }
	printf("%d",max);
return 0;
}