Pagini recente » Cod sursa (job #164369) | Cod sursa (job #2602882) | Cod sursa (job #150905) | Cod sursa (job #2930230) | Cod sursa (job #2957447)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
const int NMAX = 16 + 5;
int n, m, ans = 0;
int mat[NMAX][NMAX], prod[NMAX];
inline void backtracking(int k)
{
if(k != n + 1)
{
prod[k] = 1;
backtracking(k + 1);
prod[k] = -1;
backtracking(k + 1);
}
else
{
int f_sum = 0;
for(int i = 1; i <= n; ++ i)
{
int sum = 0;
for(int j = 1; j <= m; ++ j)
{
sum += prod[j] * mat[i][j];
}
if(sum < 0)
sum*=-1;
f_sum+=sum;
}
ans = max(ans, f_sum);
}
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(NULL);
cout.tie(NULL);
fin >> n >> m;
for(int i = 1; i <= n; ++ i)
{
for(int j = 1; j <= m; ++ j)
{
fin >> mat[i][j];
ans+=mat[i][j];
}
}
backtracking(1);
fout << ans;
}