Cod sursa(job #869722)

Utilizator timicsIoana Tamas timics Data 2 februarie 2013 01:55:27
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include<stdio.h>
int N,M,a[17][17],v[17],maxy=0;
int backy(int x)
{
    if(x==N+1)
    {
        int t=0;
        for(int i=1;i<=N;++i)
            if(v[i]==1)
                for(int j=1;j<=M;++j)
                    a[i][j]=-a[i][j];
        for(int j=1;j<=M;++j)
        {
            int s=0;
            for(int i=1;i<=N;++i)
                s=s+a[i][j];
            if(s<0)
                t=t-s;
            else
                t=t+s;
        }
        if(t>maxy)
            maxy=t;
        for(int i=1;i<=N;++i)
            if(v[i]==1)
                for(int j=1;j<=M;++j)
                    a[i][j]=-a[i][j];
    }
    else
    {
        v[x]=1;
        backy(x+1);
        v[x]=0;
        backy(x+1);
    }
    return maxy;
}
int main()
{
    freopen("flip.in","r",stdin);
    freopen("flip.out","w",stdout);
    scanf("%d %d",&N,&M);
    for(int i=1;i<=N;++i)
        for(int j=1;j<=M;++j)
            scanf("%d",&a[i][j]);
    printf("%d",backy(1));
    return 0;
}