Pagini recente » Cod sursa (job #2032188) | Cod sursa (job #2283035) | Cod sursa (job #2434456) | Cod sursa (job #831581) | Cod sursa (job #1422963)
#include <stdio.h>
#include <stdlib.h>
int col[17],a[17][17],lin[17],max;
int mx(int a,int b)
{
if(a>b) return a;
return b;
}
int genLin(int n,int m)
{
int sum,i,j,sum1,sum2;
sum=0;
for(i=1; i<=n; i++){
for(j=1; j<=m; j++)
lin[j]=col[j];
sum1=0;
for(j=1; j<=m; j++)
if(lin[j]==0)
sum1=sum1+a[i][j];
else
sum1=sum1-a[i][j];
for(j=1; j<=m; j++)
lin[j]=lin[j]^1;
sum2=0;
for(j=1; j<=m; j++)
if(lin[j]==0)
sum2=sum2+a[i][j];
else
sum2=sum2-a[i][j];
sum+=mx(sum1,sum2);
}
if(sum>max)
max=sum;
}
void bkt(int n,int p,int m)
{
if(p>m)
genLin(n,m);
else
for(col[p]=0; col[p]<2; col[p]++)
bkt(n,p+1,m);
}
int main()
{
int n,m,i,j;
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]);
bkt(n,1,m);
printf("%d\n",max);
return 0;
}