Pagini recente » Monitorul de evaluare | Cod sursa (job #3362065)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<int> vc;
typedef vector<vector<int>> matrix;
#define ft(n) for(int i=1; i<=n; i++)
#define sp ' '
string file = "flip";
ifstream f(file + ".in");
ofstream g(file + ".out");
int n, m, max_sum;
matrix v(20, vc(20, 0));
void init()
{
f >> n >> m;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
f >> v[i][j];
}
void proc()
{
int m2 = (1 << m);
for (int k = 0; k < m2; k += 1)
{
bitset<60> x(k);
int total_sum = 0;
for (int i = 0; i < n; i += 1)
{
int line_sum = 0;
for (int j = 0; j < m; j += 1)
{
if (x[j] == 1)
line_sum -= v[i][j];
else
line_sum += v[i][j];
}
total_sum += abs(line_sum);
}
max_sum = max(max_sum, total_sum);
}
}
int main() {
init();
proc();
g << max_sum;
return 0;
}