Pagini recente » Cod sursa (job #2980394) | Cod sursa (job #2481654) | Cod sursa (job #2868859) | Cod sursa (job #1983998) | Cod sursa (job #2535812)
#include <fstream>
#include <math.h>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int n, m, a[17][17], v[33], p, s, i, j, k, maxim;
int sum() {
int s = 0;
for(int i = 1; i <= n; ++i)
for(int j = 1; j <= n; ++j)
s += a[i][j];
return s;
}
int abs(int n) {
if(n < 0)
return -n;
return n;
}
int dtb(int x) {
int i = n+m;
while(x) {
v[i] = x % 2;
x /= 2;
--i;
}
}
int main() {
fin >> n >> m;
p = pow(2, n+m);
for(i = 1; i <= n; ++i)
for(j = 1; j <= m; ++j)
fin >> a[i][j];
for(i = 0; i < p; ++i) {
s = 0;
dtb(i);
for(j = 0; j <= n; ++j)
if(v[j])
for(k = 1; k <= n; ++k)
if(v[k+n] == 0)
s += -a[k][j];
else
s += a[k][j];
else
for(k = 1; k <= n; ++k)
s += a[k][j];
for(j; j <= n+m; ++j)
if(v[j])
for(k = 1; k <= m; ++k)
s += -a[j][k];
else
for(k = 1; k <= m; ++k)
s += a[j][k];
if(abs(s) > maxim)
maxim = abs(s);
}
fout << maxim;
}