Pagini recente » Cod sursa (job #417047) | Cod sursa (job #1767549) | Cod sursa (job #118728) | Cod sursa (job #2387584) | Cod sursa (job #502470)
Cod sursa(job #502470)
/*#include<stdio.h>
bool sol[17];
void afis()
{
for(int i=1;i<=n;++i)
if (sol[i])
printf("%d ",i);
}
void prelucrare()
{
int s = 0,slin;
for(int i=1 ; i<=n ; ++i)
{
slin = 0;
for(int j=1 ; j<=m ; ++j)
if(sol[j])
slin -= x[i][j];
else
slin += x[i][j];
if(slin<0)
slin = -slin;
s += slin;
}
///afis();
////printf("s = %d\n",s);
if(s > smax)
smax = s;
}
void bkt(int col)
{
if(col>m)
{
prelucrare();
return;
}
sol[col] = false;
bkt(col+1);
sol[col] = true;
bkt(col+1);
}
int main()
{
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",&x[i][j]);
bkt(1);
printf("%d",smax);
return 0;
}
*/
#include<stdio.h>
int n,m,i,j,x[20][20],smax = 0;
void prelucrare(int k)
{
int s = 0,slin;
/*
for(int j=1 ; j<=m ; ++j)
if(k & (1<<(j-1)))
printf("%d ",j);
printf("\n");
*/
for(int i=1 ; i<=n ; ++i)
{
slin = 0;
for(int j=1 ; j<=m ; ++j)
if((1<<(j-1)) & k )
slin -= x[i][j];
else
slin += x[i][j];
if(slin<0)
slin = -slin;
s += slin;
}
if(s > smax)
smax = s;
}
int main()
{
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",&x[i][j]);
for(i=0;i<(1<<m);++i)
prelucrare(i);
printf("%d",smax);
return 0;
}