Pagini recente » Cod sursa (job #1250319) | Cod sursa (job #508919) | Cod sursa (job #278620) | Cod sursa (job #1960056) | Cod sursa (job #2238918)
#include <cstdio>
#include <cmath>
#define max(a, b) (a>b?a:b)
using namespace std;
int M, N, i, j, Table[17][17], Smax;
void Find(){
int j, S=0;
for(j=1; j<=N; j++) S+=abs(Table[0][j]);
Smax=max(S, Smax);
return;
}
void BKT(int i){
if(i==M) {Find(); return;}
int j, k;
for(j=i+1; j<=M; j++){
Table[j][0]*=(-1);
for(k=1; k<=N; k++) Table[0][k]-=(2*Table[j][k]);
BKT(j);
Table[j][0]*=(-1);
for(k=1; k<=N; k++) Table[0][k]+=(2*Table[j][k]);
}
return;
}
int main()
{
freopen("flip.in", "r", stdin);
freopen("flip.out", "w", stdout);
scanf("%d%d", &M, &N);
for(i=1; i<=M; i++)
for(j=1; j<=N; j++){
scanf("%d", &Table[i][j]);
Table[i][0]+=Table[i][j];
Table[0][j]+=Table[i][j];
Smax+=Table[i][j];
}
BKT(0);
printf("%d", Smax);
return 0;
}