Pagini recente » Cod sursa (job #872709) | Cod sursa (job #2555714) | Cod sursa (job #2808450) | Cod sursa (job #1295465) | Cod sursa (job #381414)
Cod sursa(job #381414)
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
long long max,k,v[100][100],u[100],n,m;
void suma()
{
long long i,j,s,s2;
s2=0;
for (j=1;j<m+1;j++)
{
s=0;
for (i=1;i<n+1;i++) s+=(u[i]+1)*v[i][j];
s2+=abs(s);
}
if (s2>max) max=s2;
}
void back()
{
--k;
long long i;
if (k==0) for (i=1;i<n+1;i++) if (u[i]==0) {u[i]=-2;suma();u[i]=0;}
else for (i=1;i<n+1;i++) if (u[i]==0) {u[i]=-2;back();u[i]=0;}
++k;
}
int main()
{
long long i,j,s;
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%lld%lld",&n,&m);
for (i=1;i<n+1;i++)
for (j=1;j<m+1;j++) scanf("%lld",&v[i][j]);
for (j=1;j<m+1;j++)
{
s=0;
for (i=1;i<n+1;i++) s+=v[i][j];
max+=abs(s);
}
for (k=1;k<n+1;k++) back();
printf("%lld",max);
return 0;
}