Cod sursa(job #956302)

Utilizator thewildnathNathan Wildenberg thewildnath Data 2 iunie 2013 19:27:21
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<stdio.h>

int v[18][18],c[18],n,m,sol=-2000000000;

void sum()
{
    int i,j,s1=0,s2=0;
    for(i=1;i<=n;i++)
    {
        s1=0;
        for(j=1;j<=m;j++)
            if(c[i])
                s1+=-v[i][j];
            else
                s1+=v[i][j];
        if(2*s1<0)//if(s1<-s1)
            s1=-s1;
        s2+=s1;
    }
    if(s2>sol)
        sol=s2;
}

void back(int p)
{
    if(p==n+1)
    {
        sum();
        return;
    }
    c[p]=0;
    back(p+1);
    c[p]=1;
    back(p+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",&v[i][j]);
    ////////

    back(1);

    printf("%ld\n",sol);
    return 0;
}