Pagini recente » Cod sursa (job #2050013) | Cod sursa (job #2959027) | Cod sursa (job #2768180) | Cod sursa (job #84994) | Cod sursa (job #575562)
Cod sursa(job #575562)
#include<stdio.h>
int n,m,s,a[20][20],b[20][20],sol[25];
void prelucrare(int p)
{
int i,j,sb=0,s1,s2;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
b[i][j]=a[i][j];
for(j=1;j<=p;j++)
//inmultesc cu -1 coloana sol[j] din b
for(i=1 ; i<=n ; i++)
b[i][sol[j]] = -b[i][sol[j]];
for(i=1;i<=n;i++)
{
s1=0;
s2=0;
for(j=1;j<=m;j++)
{
s1=s1+b[i][j];
s2=s2-b[i][j];
}
if(s1>s2)
sb+=s1;
else
sb+=s2;
}
if(sb>s)
s=sb;
}
void bkt (int p)
{
prelucrare(p-1);
for(int i=1+sol[p-1];i<=m;i++)
{
sol[p]=i;
bkt(p+1);
}
}
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]);
}
}
bkt(1);
printf("%d",s);
return 0;
}