Pagini recente » Cod sursa (job #164538) | Cod sursa (job #2620152) | Cod sursa (job #338736) | Cod sursa (job #933940) | Cod sursa (job #698048)
Cod sursa(job #698048)
#include<cstdio>
#include<cmath>
int a[17][17],c[17],d1[17],s,max=-2147483648,n,m,ca[17][17];
void descompunere(int x)
{
int i=0;
while(x!=0)
{
i++;
d1[i]=x%2;
x=x/2;
}
}
void refacere()
{
int i,j;
for(i=1;i<=n;i++)
if(d1[i]==1)
for(j=1;j<=m;j++)
a[i][j]*=-1;
}
void fc()
{
int i,j;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
c[i]+=a[j][i];
for(i=1;i<=m;i++)
{
if(c[i]<0)
c[i]*=-1;
s+=c[i];
}
if(s>max)
max=s;
}
int main()
{
int i,j,nr;
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
scanf("%d",&a[i][j]);
ca[i][j]=a[i][j];
}
nr=0;
while(nr<=pow(2,n+1))
{
descompunere(nr);
refacere();
fc();
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
a[i][j]=ca[i][j];
for(i=1;i<=m;i++)
c[i]=0;
s=0;
nr++;
}
printf("%d",max);
return 0;
}