Cod sursa(job #1170980)

Utilizator t.g.g.tt.g.g.t t.g.g.t Data 14 aprilie 2014 22:38:19
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>

using namespace std;

int n,m,b[20][20],a[20][20],sc[20],nr,subm[20],maxim,stot,lol;

int main()
{
    ifstream in ("flip.in");
    ofstream out ("flip.out");

    in>>n>>m;

    for (int i=1;i<=n;++i)
        for (int j=1;j<=m;++j)
            {   in>>a[i][j]; sc[j]+=a[i][j]; maxim+=a[i][j]; b[i][j]=a[i][j]; }

    nr=1<<n;

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

        stot=0;
        for (int i=1;i<=m;++i) if ( sc[i]<0 ) { stot-=sc[i]; }else stot+=sc[i];
        if (maxim<stot) { maxim=stot;}
    }

    out<<maxim;


    in.close();
    out.close();
}