Pagini recente » Cod sursa (job #1905789) | Cod sursa (job #2608308) | Cod sursa (job #400290) | Cod sursa (job #2971450) | Cod sursa (job #992301)
Cod sursa(job #992301)
#include <cstdio>
using namespace std;
long a[33][33],lin[33],i,max,s,j,n,m;
long abss(long x){if(x<0){x*=-1;}return x;}
void back(int poz)
{
//noflip
if(poz==m){
s=0;
for(i=1;i<=n;i++){s+=abss(lin[i]);}
if(s>max){max=s;}
}
else{back(poz+1);}
//flip
for(i=1;i<=n;i++){lin[i]-=2*a[i][poz];}
if(poz==m){
s=0;
for(i=1;i<=n;i++){s+=abss(lin[i]);}
if(s>max){max=s;}
}
else{back(poz+1);}
for(i=1;i<=n;i++){lin[i]+=2*a[i][poz];}
}
int main()
{
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%ld%ld",&n,&m);
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
scanf("%ld",&a[i][j]);
lin[i]+=a[i][j];
}
}
back(1);
printf("%ld",max);
return 0;
}