Pagini recente » Cod sursa (job #1534629) | Cod sursa (job #2424890) | Cod sursa (job #166425) | Cod sursa (job #422578) | Cod sursa (job #443821)
Cod sursa(job #443821)
#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);
}
}