Pagini recente » Cod sursa (job #1688110) | Cod sursa (job #2327909) | Cod sursa (job #1954632) | Cod sursa (job #1601483) | Cod sursa (job #1010977)
#include <stdio.h>
#define fr(i,a,b) for(int i=a;i<b;++i)
#define N 16
int a[N][N];
int col[N];
int rows[N];
int n,m;
int maxsum;
void calc(){
int sum=0;
fr(i,0,m) col[i]=0;
fr(i,0,n)fr(j,0,m) col[j]+=rows[i]?a[i][j]:-a[i][j];
fr(i,0,m) sum+=col[i]>0?col[i]:-col[i];
if(sum>maxsum)maxsum=sum;
}
int backtrack(int d){
if(d==n) calc();
else{
rows[d]=0;backtrack(d+1);
rows[d]=1;backtrack(d+1);
}
}
int main(){
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%i%i",&n,&m);
fr(i,0,n) fr(j,0,m)scanf("%i",a[i]+j);
backtrack(0);
printf("%i\n",maxsum);
return 0;
}