Pagini recente » Cod sursa (job #3229485) | Cod sursa (job #2680832) | Cod sursa (job #1903047) | Cod sursa (job #2396361) | Cod sursa (job #1378601)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int N, M, map[20][20], sign[20], best;
int max(int a, int b)
{
if(a > b)
return a;
return b;
}
void read()
{
fin >> N >> M;
for(int i = 1; i <= N; i++)
{
for(int j = 1; j <= M; j++)
{
fin >> map[i][j];
}
}
}
void solve()
{
long nr, sum = 0;
for(int i = 1; i <= N; i++)
{
nr = 0;
for(int j = 1; j <= M; j++)
nr += map[i][j] * sign[j];
sum += max(nr,-nr);
}
best = max(best,sum);
}
void backtrack(int k)
{
if(k == M + 1)
{
solve();
return;
}
sign[k] = -1;
backtrack(k + 1);
sign[k] = 1;
backtrack(k + 1);
}
int main()
{
read();
backtrack(1);
fout << best;
return 0;
}