Cod sursa(job #499004)

Utilizator godlikezorRoibu Adrian godlikezor Data 8 noiembrie 2010 10:27:14
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <stdio.h>
int a[17][17],i,j,k=1,m,n,p,sum,smax,sc,lim;
 int main()
{
    freopen("flip.in","r",stdin);
    freopen("flip.out","w",stdout);
 
    scanf("%d %d",&n,&m);
    for(i=1; i<=n; ++i)
        for(j=1; j<=m; ++j)
            scanf("%d",&a[i][j]);
    while(k<=m)
    {
        sc=0;
        for(p=1; p<=n; ++p)
            sc+=a[p][k];
 
        if(sc>0)
            sum+=sc;
        else
            sum-=sc;
        k++;
    }
    if(sum>smax)
        smax=sum;
 
    lim=1<<n;
    for(i=1; i<lim; ++i)
    {
        for(j=0; j<n; ++j)
        {
            if(i&(1<<j))
           {
                for(k=1; k<=m; ++k)
                    a[j][k]=-a[j][k];
            }
        }
        k=1;
        sum=0;
        while(k<=m)
        {
            sc=0;
            for(p=1; p<=n; ++p)
                sc+=a[p][k];
 
            if(sc>0)
                sum+=sc;
            else
                sum-=sc;
            k++;
        }
        if(sum>smax)
            smax=sum;
    }
    printf("%d",smax);
    return 0;
}