Pagini recente » Cod sursa (job #296810) | Cod sursa (job #234366) | Cod sursa (job #2641308) | Cod sursa (job #2944615) | Cod sursa (job #1402312)
#include <cstdio>
using namespace std;
FILE *in, *out;
const int MAX_N = 16, MAX_M = 16;
//const long long INF = MAX_N*MAX_M*1e9;
int mat[MAX_N+1][MAX_M+1], sol[MAX_N+1][MAX_M+1];
int n, m;
void col(int j)
{
for(int i = 1; i <= n; i++)
sol[i][j] *= -1;
}
int main()
{
in = fopen("flip.in", "r");
out = fopen("flip.out", "w");
fscanf(in, "%d%d", &n, &m);
int i, j, k;
long long sum = 0, rez = 0;
long long slin = 0;
for(i = 1; i <= n; i++)
for(j = 1; j <= m; j++)
fscanf(in, "%d", &mat[i][j]);
for(i = 0; i < (1 << m); i++)
{
sum = 0;
for(j = 1; j <= n; j++)
for(k = 1; k <= m; k++)
sol[j][k] = mat[j][k];
for(j = 0; j < m; j++)
if(i&(1<<j))
col(j);
for(j = 1; j <= n; j++)
{
slin = 0;
for(k = 1; k <= m; k++)
slin += sol[j][k];
if(slin < 0) slin *= -1;
sum += slin;
}
if(sum > rez)
rez = sum;
}
fprintf(out, "%d", rez);
return 0;
}