Cod sursa(job #819100)

Utilizator taloibogdanTaloi Bogdan Cristian taloibogdan Data 18 noiembrie 2012 15:35:48
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<stdio.h>
#include<string.h>
long n,m,i,j,a[20][20],max,d,k,ii,l[20],c[20],s,S,M;
int main()
{
    freopen("flip.in","r",stdin);
    freopen("flip.out","w",stdout);
    scanf("%ld%ld",&n,&m);
    for(i=1;i<=n;++i)
        for(j=1;j<=m;++j)
            scanf("%ld",&a[i][j]);
    max=-20000000;
    d=1<<n;
    for(i=0;i<=d;++i)
    {
        ii=i;
        memset(l,0,sizeof(l));
        memset(c,0,sizeof(c));
        for(j=n;j&&ii;--j)
        {
            l[j]=ii%2;
            ii/=2;
        }
        for(j=1;j<=m;++j)
        {
            s=0;
            for(k=1;k<=m;++k)
                if(l[k])s-=a[k][j];
                   else s+=a[k][j];
            if(s<0)c[j]=1;
        }
        S=0;
        for(j=1;j<=n;++j)
            for(k=1;k<=m;++k)
                if(l[j]+c[k]==1)S-=a[j][k];
                           else S+=a[j][k];
        if(S>M)M=S;
    }
    printf("%ld\n",M);
    return 0;
}