Cod sursa(job #1500349)

Utilizator elevenstrArina Raileanu elevenstr Data 11 octombrie 2015 19:50:52
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("flip.in");
ofstream out("flip.out");
#define INF 1000001
#define MAX(a,b) (a>b?a:b)
int mat[17][17],lp[17],ln[17],cp[17],cn[17];
int main()
{
    int n,i,j,k,l,s,bst=-INF,m,ind;
    in>>n>>m;
    for(i=1; i<=n; i++)
    {
        lp[i]=0;
        ln[i]=0;
        for(j=1; j<=m; j++)
        {
            in>>mat[i][j];
            lp[i]+=mat[i][j];
            ln[i]-=mat[i][j];
        }
    }


    for(i=0; i<=((1<<n)-1); i++)
    {
        int act=0;
        for(j=0; j<=n-1; j++)
        {
            if(i&(1<<j))act+=ln[j+1];
            else act+=lp[j+1];

        }
        if(act>bst)
        {
            bst=act;
            ind=i;
        }
    }
    int com=0;
    for(j=1; j<=m; j++)
    {
        int s1=0;
        int s2=0;
        for(i=1; i<=n; i++)
        {
            if(ind&(1<<(i-1)))
            {
                s1=s1-mat[i][j];
                s2=s2+mat[i][j];
            }
            else
            {
                s1=s1+mat[i][j];
                s2=s2-mat[i][j];
            }
        }
        com=com+MAX(s1,s2);

    }
    out<<com;
    return 0;
}