Pagini recente » Cod sursa (job #1142686) | Cod sursa (job #1634609) | Cod sursa (job #933810) | Cod sursa (job #503059) | Cod sursa (job #1864581)
#include <fstream>
#include <iostream>
#include <stdlib.h>
#define INF 0x3f3f3f3f
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int n, m, s[17], p, a[67000][17], v[17][17];
long long sumAbs, sumMax = -INF, sumFlip;
void display_sol(int k){
sumFlip = 0;
p++;
for(int i=1; i<=k; i++){
a[p][s[i]] = 1;
}
for(int i=1; i<=n; ++i){
sumAbs = 0;
for(int j=1; j<=m; ++j){
if(a[p][j]) sumAbs -= v[i][j];
else sumAbs += v[i][j];
}
sumFlip += abs(sumAbs);
}
if(sumFlip > sumMax) sumMax = sumFlip;
}
void backtracking(int k)
{
for(s[k]=s[k-1]+1; s[k]<=m; s[k]++)
{
display_sol(k);
backtracking(k+1);
}
}
int main()
{
f >> n >> m;
for(int i=1; i<=n; ++i){
for(int j=1; j<=m; ++j){
f >> v[i][j];
}
}
backtracking(1);
g << sumMax << '\n';
}