Pagini recente » Cod sursa (job #1125893) | Cod sursa (job #1452891) | Cod sursa (job #1832091) | Cod sursa (job #2456247) | Cod sursa (job #2034351)
#include <stdio.h>
#include <stdlib.h>
#define MAXN 16
#define INF 256000000
int a[MAXN][MAXN];
int s_lin[MAXN], adg[MAXN];
int main()
{
int n, m, i, j, nr, max, sum, lin, col, val;
FILE *fi, *fo;
fi = fopen("flip.in", "r");
fo = fopen("flip.out", "w");
fscanf(fi, "%d%d", &n, &m);
for(i=0; i<n; i++)
for(j=0; j<m; j++) {
fscanf(fi, "%d", &a[i][j]);
s_lin[i]+=a[i][j];
}
nr=1<<m;
max=-INF;
for(i=0; i<nr; i++) {
for(col=0; col<m; col++)
if(i&(1<<col))
for(lin=0; lin<n; lin++)
adg[lin]-=2*a[lin][col];
sum=0;
for(lin=0; lin<n; lin++) {
val=s_lin[lin]+adg[lin];
sum+=(val>0 ? val : -val);
}
if(sum>max)
max=sum;
for(lin=0; lin<n; lin++)
adg[lin]=0;
}
fprintf(fo, "%d", max);
fclose(fi);
fclose(fo);
return 0;
}