Cod sursa(job #1222793)

Utilizator pentrusandaPentru Sanda pentrusanda Data 24 august 2014 13:44:20
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <stdio.h>

using namespace std;

int n,m,a[20][20],b[20],sumc[20],maxim;

int main()
{
    freopen("flip.in","r",stdin);
    freopen("flip.out","w",stdout);

    scanf("%d %d\n",&n,&m);

    for (int i=1;i<=n;++i)
    {
        for (int j=1;j<=m;++j)
        {
            scanf("%d ",&a[i][j]);
        }
    }

    int nr=1<<n,sum;
    for (int i=1;i<=m;++i)
    {
        for (int j=1;j<=n;++j)
        {
            sumc[i]+=a[j][i];
        }
    }

    maxim=-400000000;
    while (nr>0)
    {
        sum=0;
        for (int i=1;i<=m;++i) if (sumc[i]<0) sum+=(-sumc[i]);else sum+=sumc[i];
        if (sum>maxim) maxim=sum;

        int i=1; while (b[i]==1) { b[i]=0; for (int j=1;j<=m;++j) sumc[j]+=2*a[i][j]; ++i; }
        b[i]=1; for (int j=1;j<=m;++j) sumc[j]-=2*a[i][j];
        --nr;
    }

    printf("%d",maxim);

    fclose(stdin);
    fclose(stdout);
    return 0;
}