Pagini recente » Cod sursa (job #2860173) | Cod sursa (job #2877209) | Cod sursa (job #2079033) | Cod sursa (job #422383) | Cod sursa (job #50474)
Cod sursa(job #50474)
#include <cstdio>
const int N = 16;
const int M = 16;
const int INF = 2000000000;
int n,m;
int a[N][M];
int max = -INF;
bool swl[M];
void coloane() {
int s[M] = {0};
for (int i = 0; i<n; ++i)
for (int j = 0; j<m; ++j)
s[j] += (swl[i]) ? -a[i][j] : a[i][j];
int ss = 0;
for (int j = 0; j<m; ++j)
ss += (s[j] < 0) ? -s[j] : s[j];
if (ss > max) max = ss;
}
void linii ( int k ) {
swl[k] = false;
if (k == n-1)
coloane(); else
linii(k+1);
swl[k] = true;
if (k == n-1)
coloane(); else
linii(k+1);
}
int main() {
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%d %d",&n,&m);
if (n < m) {
for (int i = 0; i<n; ++i)
for (int j = 0; j<m; ++j) scanf("%d",&a[i][j]);
} else {
for (int i = 0; i<n; ++i)
for (int j = 0; j<m; ++j) scanf("%d",&a[j][i]);
int x = n; n = m; m = x;
}
linii(0);
printf("%d\n",max);
}