Pagini recente » Cod sursa (job #2579917) | Cod sursa (job #222894) | Cod sursa (job #2105393) | Cod sursa (job #2677227) | Cod sursa (job #357444)
Cod sursa(job #357444)
#include<cstdio>
int n,m,a[20][20],b[20][20],max;
bool v[20];
void copiere()
{
int i,j;
for(i=1;i<=n;++i)
for(j=1;j<=m;++j)
b[i][j]=a[i][j];
}
int sumlin(int x)
{
int i,s=0;
for(i=1;i<=m;++i)
s+=b[x][i];
return s;
}
int sumtot()
{
int i,j,s=0;
for(i=1;i<=n;++i)
for(j=1;j<=m;++j)
s+=b[i][j];
return s;
}
void verif()
{
int i,j,k=0;
copiere();
for(i=1;i<=m;++i)
if(v[i])
for(j=1;j<=n;++j)
b[j][i]*=(-1);
for(j=1;j<=n;++j)
{
if(sumlin(j)<0)
for(i=1;i<=m;++i)
b[j][i]*=(-1);
}
k=sumtot();
if(k>max)
max=k;
}
void init(bool x[])
{
int i;
for(i=1;i<=m;++i)
x[i]=0;
}
void ciur(int x)
{
init(v);
int i=0;
while(x)
{
v[++i]=x%2;
x/=2;
}
verif();
}
int main()
{
int i,j;
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]);
for(i=1;i<=1<<m;++i)
ciur(i);
printf("%d",max);
}