Pagini recente » Cod sursa (job #3203084) | Cod sursa (job #2801672) | Cod sursa (job #391253) | Cod sursa (job #2786358) | Cod sursa (job #1518984)
#include <bits/stdc++.h>
using namespace std;
int x[20], a[20][20], sl[20], sc[20];
int main()
{
int n, m;
freopen("flip.in", "r", stdin);
freopen("flip.out", "w", stdout);
cin >> n >> m;
for(int i = 1; i <= n; i ++)
for(int j = 1; j <= m; j ++)
cin >> a[i][j], sl[i] += a[i][j];//, sc[i] += a[i][j];
for(int i = 1; i <= n; i ++)
x[i] = -1;
int i = 1, mx = 0, aux[20];
while(i != 0) {
while(i != 0 && i <= n) {
x[i] ++;
if(x[i] > 1) x[i] = -1, i --;
else i ++;
}
if(i > n) {
int s = 0;
for(int j = 1; j <= n; j ++) {
if(x[j])
s -= sl[j];
else s += sl[j];
}
if(s > mx) {
mx = s;
for(int j = 1; j <= n; j ++)
aux[j] = x[j];
}
i = n;
}
}
for(int i = 1; i <= n; i ++)
if(aux[i]) {
for(int j = 1; j <= m; j ++)
a[i][j] = -a[i][j];
}
for(int i = 1; i <= n; i ++)
for(int j = 1; j <= m; j ++)
sc[j] += a[i][j];
i = 1;
mx = 0;
while(i != 0) {
while(i != 0 && i <= m) {
x[i] ++;
if(x[i] > 1) x[i] = -1, i --;
else i ++;
}
if(i > m) {
int s = 0;
for(int j = 1; j <= m; j ++) {
if(x[j])
s -= sc[j];
else s += sc[j];
}
if(s > mx) {
mx = s;
}
i = m;
}
}
cout << mx << "\n";
return 0;
}