Cod sursa(job #1555706)

Utilizator ipus1Stefan Enescu ipus1 Data 23 decembrie 2015 14:34:40
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include<cstdio>
int n,m,st[17],ma[17][17],cma[17][17],max;
void back(int k)
    {if(k==n+1)
        {int i,j,l,p,s;
        for(i=1;i<=n;i++)
            if(st[i]==1)
                for(j=1;j<=m;j++)
                    cma[i][j]=-ma[i][j];
            else
                for(j=1;j<=m;j++)
                    cma[i][j]=ma[i][j];
        s=0;
        for(j=1;j<=m;j++)
            {l=0;
            p=0;
            for(i=1;i<=n;i++)
                {l+=cma[i][j];
                p-=cma[i][j];
                }
            if(l>p)
                s+=l;
            else
                s+=p;
            }
        if(s>max)
            max=s;
        }
    else
        {int i;
        for(i=0;i<=1;i++)
            {st[k]=i;
            back(k+1);
            }
        }
    }
int main ()
{freopen ("flip.in","r",stdin);
freopen ("flip.out","w",stdout);
int i,j;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
    for(j=1;j<=m;j++)
        scanf("%d",&ma[i][j]);
back(1);
printf("%d",max);
return 0;
}