Pagini recente » Cod sursa (job #1186795) | Cod sursa (job #221) | Cod sursa (job #2285305) | Cod sursa (job #587306) | Cod sursa (job #432520)
Cod sursa(job #432520)
#include <stdio.h>
#define lung 20
int a[lung][lung];
int max,n,m;
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;
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 (su>max) max=su;
int k;
if (x>=n)
{
int ax=x-n;
for (k=0;k<n;k++)
su-=2*a[k][ax];
if (su>max) max=su;
if (x+1<n+m) bkt(x+1,su);
for (k=0;k<n;k++)
su+=2*a[k][ax];
if (su>max) max=su;
if (x+1<n+m) bkt(x+1,su);
}
else
{
for (k=0;k<n;k++)
su-=2*a[x][k];
if(su>max) max=su;
if (x+1<n+m) bkt(x+1,su);
for (k=0;k<n;k++)
su+=2*a[x][k];
if (su>max) max=su;
if (x+1<n+m) bkt(x+1,su);
}
}