Cod sursa(job #1964925)

Utilizator matystroiaStroia Matei matystroia Data 13 aprilie 2017 20:07:47
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
using namespace std;

ifstream fin("flip.in");
ofstream fout("flip.out");

const int N=16, INF=2e9;

int n, m, a[N][N], sl[N], sc[N];

int main()
{
    fin>>n>>m;

    for(int i=0;i<n;++i)
        for(int j=0;j<m;++j)
            fin>>a[i][j], sl[i]+=a[i][j], sc[j]+=a[i][j];

    int smax=-INF;
    for(int x=0;x<(1<<m);++x)
    {
        for(int bit=0;bit<m;++bit)
            if(x&(1<<bit))
                for(int i=0;i<n;++i)
                    sl[i]-=2*a[i][bit];

        int s=0;
        for(int i=0;i<n;++i)
            if(sl[i]<0)
                s+=-sl[i];
            else
                s+=sl[i];

        smax=max(smax, s);

        for(int bit=0;bit<m;++bit)
            if(x&(1<<bit))
                for(int i=0;i<n;++i)
                    sl[i]+=2*a[i][bit];
    }

    fout<<smax;
    return 0;
}