Pagini recente » Cod sursa (job #655328) | Cod sursa (job #2743865) | Cod sursa (job #2934105) | Cod sursa (job #2295975) | Cod sursa (job #17000)
Cod sursa(job #17000)
#include <string>
#include <fstream>
#include <vector>
using namespace std;
const int kMaxD = 16;
int A[kMaxD][kMaxD], n, m;
void input() {
fstream f;
f.open("flip.in", ios::in);
f >> n >> m;
int i, j;
for (i = 0; i < n; ++i)
for (j = 0; j < m; ++j)
f >> A[i][j];
f.close();
}
void output(int sol) {
fstream f;
f.open("flip.out", ios::out);
f << sol << endl;
f.close();
}
int sum(int cflags) {
int i, j, rsum = 0;
for (i = 0; i < n; ++i) {
int csum = 0;
for (j = 0; j < m; ++j)
csum += A[i][j] * (cflags & (1 << j) ? -1 : 1);
if (csum > 0)
rsum += csum;
else
rsum -= csum;
}
return rsum;
}
int main(void) {
input();
int best = sum(0);
for (int cflags = 1; cflags < (1 << m); ++cflags) {
int asum = sum(cflags);
if (asum > best)
best = asum;
}
output(best);
return 0;
}