Cod sursa(job #1743724)

Utilizator dragomirmanuelDragomir Manuel dragomirmanuel Data 18 august 2016 16:55:28
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <iostream>
#include <cstdio>

using namespace std;

int N,M,v[20][20], L[20], C[20],sum,sol2;
int optim;

void Read()
{
    scanf("%d%d",&N,&M);

    for(int i=1; i<=N; i++)
        for(int j=1; j<=M; j++)
            scanf("%d", &v[i][j]);

    for(int i=1; i<=N; i++)
        for(int j=1; j<=M; j++)
            L[i]+=v[i][j];

    for(int i=1; i<=N; i++)
        optim+=L[i];

}

void BKLinie()
{
    int m=1<<N;
    for(int i=0; i<m; i++)
    {
        int spart=0;
        for(int j=0; j<N; j++)
        {
            if(i&(1<<(j)))
                spart-=L[j+1];
            else spart+=L[j+1];
        }

        for(int c=1; c<=M; c++)
        {
            int sol=0;
            for(int j=0; j<N; j++)
            {
                if(i&(1<<(j)))
                    sol-=v[j+1][c];
                else sol+=v[j+1][c];
            }
            if(sol<0)
                spart-=2*sol;
        }
        if(spart>optim)
            optim=spart;

    }
    printf("%d",optim);
}




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

    Read();
    BKLinie();
    return 0;
}