Pagini recente » Cod sursa (job #453524) | Cod sursa (job #1516854) | Cod sursa (job #1742844) | Cod sursa (job #3288792) | Cod sursa (job #2463584)
#include <iostream>
#include <fstream>
#include <cmath>
#include <bits/stdc++.h>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
#define MAX_SIZE 17
int n, m, i, j, k;
int table[MAX_SIZE][MAX_SIZE];
int summax, suma, s1, s2;
bool flip[MAX_SIZE];
void GetSum() {
suma = 0;
for(i = 1; i <= n; i++) {
s1 = 0;
s2 = 0;
for(j = 1; j <= m; j++) {
if(flip[j]) {
s1 += table[i][j];
s2 -= table[i][j];
} else {
s1 -= table[i][j];
s2 += table[i][j];
}
}
suma += max(s1, s2);
}
summax = max(summax, suma);
}
void bck(int k) {
if(k == m+1) {
GetSum();
return;
}
flip[k] = 1;
bck(k+1);
flip[k] = 0;
bck(k+1);
}
int main()
{
f >> n >> m;
for(i = 1; i <= n; i++) {
for(j = 1; j <= m; j++) {
f >> table[i][j];
}
}
summax = INT_MIN;
bck(1);
g << summax;
return 0;
}