Cod sursa(job #1093004)

Utilizator dragos_vecerdeaVecerdea Dragos dragos_vecerdea Data 27 ianuarie 2014 17:48:17
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>

using namespace std;
ifstream in("flip.in");
ofstream out("flip.out");
int m ,n ,sumax=0 ,uz[17] ,a[33] , v[17][17] ,st[17] ,sum=0;
void calc();
void bkt();
void bkt(int niv)
{
    if(niv>m)
    {
        calc();
    }
    for(int i=1;i<=2*m;i++)
    {
        if(uz[i]==0)
        {
            st[niv]=a[i];
            uz[i]=1;
            bkt(niv+1);
            uz[i]=0;
        }
    }
}
void calc()
{
    for(int i=1;i<=n;i++)
    {
        int s=0;
        for(int j=1;j<=m;j++)
        {
            if(st[j]==0)s-=v[i][j];
            else s+=v[i][j];
        }
        if(s<0)s=-s;
        sum+=s;
    }

    if(sum>sumax)sumax=sum;
    sum=0;
}
int main()
{
    int i ,j;
    in>>n>>m;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        {
            in>>v[i][j];
        }
    for(i=m+1;i<=m*2;i++)
    {
        a[i]=1;
    }
    bkt(1);
    out<<sumax;
    return 0;
}