Cod sursa(job #2028760)

Utilizator victoreVictor Popa victore Data 28 septembrie 2017 16:50:19
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<cstdio>
#include<algorithm>

using namespace std;

const int nmax=20;

int v[nmax][nmax],n,m;
bool line[nmax];

int maxsum = -16000000*16;

inline void getsum()
{
    int inm,i,j,sumcol=0,allsum=0;

    for(j=1;j<=m;++j,sumcol=0)
    {
        for(i=1;i<=n;++i)
        {
            if(line[i])
                sumcol+=-v[i][j];
            else
                sumcol+=v[i][j];
        }
        if(sumcol<0)
            sumcol*=-1;
        allsum+=sumcol;
    }

    maxsum=max(maxsum,allsum);
}

inline void bk(int k)
{
    if(k==n+1)
    {
        getsum();
        return;
    }

    line[k] = 1;
    bk(k+1);

    line[k] = 0;
    bk(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",&v[i][j]);

    bk(1);

    printf("%d",maxsum);
}