Pagini recente » Cod sursa (job #1111906) | Cod sursa (job #377835) | Cod sursa (job #2760245) | Cod sursa (job #1911733) | Cod sursa (job #1724170)
#include <cstdio>
#define MAXN 16
using namespace std;
int mat[MAXN][MAXN], col[MAXN];
inline int myabs(int val){
if(val<0)
return -val;
return val;
}
int main()
{
FILE *fin, *fout;
int n, m, nr, i, j, sum, maxim;
fin=fopen("flip.in", "r");
fscanf(fin, "%d%d", &n, &m);
for(nr=0; nr<n; nr++)
for(i=0; i<m; i++){
fscanf(fin, "%d", &mat[nr][i]);
col[i]+=mat[nr][i];
}
fclose(fin);
maxim=-2000000000;
for(nr=0; nr<(1<<n); nr++){
for(i=0; i<n; i++)
if(nr&(1<<i))
for(j=0; j<m; j++)
col[j]-=2*mat[i][j];
sum=0;
for(i=0; i<m; i++)
sum+=myabs(col[i]);
if(sum>maxim)
maxim=sum;
for(i=0; i<n; i++)
if(nr&(1<<i))
for(j=0; j<m; j++)
col[j]+=2*mat[i][j];
}
fout=fopen("flip.out", "w");
fprintf(fout, "%d\n", maxim);
fclose(fout);
return 0;
}