Pagini recente » Cod sursa (job #301924) | Cod sursa (job #1060701) | Cod sursa (job #2579271) | Cod sursa (job #1460259) | Cod sursa (job #2259724)
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int n, m, v[18];
long a[18][18], rnd[18], col[18], smax, s, s0;
void calculare(int k){
s = 0;
for(int i = 1; i<=m; ++i){
long coloana = col[i];
for(int j = 1; j<=k; ++j){
coloana-=2*a[v[j]][i];
}
s+=abs(coloana);
}
if(s>smax) smax = s;
}
void flip(int k){
for(int i = v[k-1]+1; i<n; ++i){
v[k] = i;
calculare(k);
flip(k+1);
}
}
int main()
{
fin>>n>>m;
s0 = 0;
for(int i = 1; i<=n; ++i){
for(int j = 1; j<=m; ++j){
fin>>a[i][j];
rnd[i]+=a[i][j];
col[j]+=a[i][j];
s0+=a[i][j];
}
}
v[0] = 0;
flip(1);
fout<<smax;
return 0;
}