Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #909341) | Cod sursa (job #2023759) | Cod sursa (job #2911761)
#include <iostream>
#include <fstream>
#define int long long
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
const int N = 16, inf = 1e18;
int mat[N + 1][N + 1];
signed main(){
int n, m;
fin >> n >> m;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++)
fin >> mat[i][j];
int ans = -inf;
for(int msk = 0; msk < (1 << n); msk++){
int sum = 0;
for(int j = 1; j <= m; j++){
int tmp1 = 0, tmp2 = 0;
for(int i = 1; i <= n; i++){
if( msk & (1 << (i - 1)) )
tmp1 -= mat[i][j], tmp2 += mat[i][j];
else
tmp1 += mat[i][j], tmp2 -= mat[i][j];
}
sum += max(tmp1, tmp2);
}
ans = max(ans, sum);
}
fout << ans << '\n';
return 0;
}