Pagini recente » Cod sursa (job #97150) | Cod sursa (job #1617372) | Cod sursa (job #2963445) | Cod sursa (job #227763) | Cod sursa (job #836743)
Cod sursa(job #836743)
#include <stdio.h>
#include <bitset>
using namespace std;
int n,m,a[17][17],bestSol=-1000000000,v[17];
bitset<17> b;
void doSum(){
for(int j=0;j<m;j++)
v[j]=0;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++)
v[j]+=(b[i]?a[i][j]:(-1)*a[i][j]);
}
int sum=0;
for(int j=0;j<m;j++)
if(v[j]>0) sum+=v[j];
else sum+=(-1)*v[j];
if(sum>bestSol)
bestSol=sum;
}
void back(int nivel){
if(nivel==n) doSum();
else{
b[nivel]=0;
back(nivel+1);
b[nivel]=1;
back(nivel+1);
}
}
int main(){
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%d %d",&n,&m);
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
scanf("%d",&a[i][j]);
back(0);
printf("%d",bestSol);
return 0;
}