Cod sursa(job #957529)

Utilizator rzvrzvNicolescu Razvan rzvrzv Data 5 iunie 2013 12:08:02
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include<cstdio>

using namespace std;

int n,m,i,j,mx,f[20],a[20][20];

int iabs(int x)
{
    if(x<0)
        return (-x);
    return x;
}

void fliplin()
{
    int i,j;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
        {
            if(f[i]==1)
                a[i][j]*=-1;
        }
    }
}

void verif()
{
    int sum,i,j,sumcol;
    fliplin();
    sum=0;
    for(i=1;i<=m;i++)
    {
        sumcol=0;
        for(j=1;j<=n;j++)
        {
            sumcol+=a[j][i];
        }
        sum+=iabs(sumcol);
    }
    if(sum>mx)
        mx=sum;
    fliplin();
}

void back(int k)
{
    int i;
    if(k>n)
    {
        verif();
    }
    else
    for(i=0;i<=1;i++)
    {
        f[k]=i;
        back(k+1);
    }
}

int main()
{
    freopen("flip.in","r",stdin);
    freopen("flip.out","w",stdout);
    scanf("%d%d",&n,&m);
    mx=0;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=m;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    back(1);
    printf("%d\n",mx);
    return 0;
}