Cod sursa(job #654143)

Utilizator tzipleatudTudor Tiplea tzipleatud Data 29 decembrie 2011 18:02:01
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <algorithm>
#include <fstream>
using namespace std;

ifstream f("flip.in");
ofstream g("flip.out");

int n,m,i,j,v[20][20],sumx=-(1<<30),comb,c,p,x,s1,s2;
int s[65600];


int main () {
    f >> n >> m;
    for (i=1;i<=n;i++)
        for (j=1;j<=m;j++) {
            f >> v[i][j];
            v[i][0]+=v[i][j];
        }
    comb=1<<m;
    for (i=1;i<=n;i++) {
        for (c=0;c<=comb;c++) {
            s1=v[i][0];s2=-v[i][0];
            for (p=1,j=1;p<=comb && j<=m;p*=2,j++)
                if ((p&c)!=0) {
                    x=v[i][j]*(-1);
                    s1+=2*x;s2+=2*x;
                }
            s[c]+=max(s1,s2);
        }
    }
    for (c=0;c<comb;c++) sumx=max(sumx,s[c]);
    g << sumx << '\n';
    f.close();g.close();
    return 0;
}