Cod sursa(job #1167659)

Utilizator radu_cebotariRadu Cebotari radu_cebotari Data 5 aprilie 2014 17:40:02
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<fstream>
using namespace std;
int v[20][20],semn[20],n,m,best=0,s=0;
ifstream in("flip.in");
ofstream out("flip.out");

int citire()
{
    in>>n>>m;
    int i,j;
    for(i = 1 ; i <= n ; i++)
        for(j = 1 ; j <= n; j++)
            in>>v[i][j];
    in.close();
}

int max(int a,int b)
{

    if(a>=b) return a;
    else return b;
}

void solve()
{

    int i,j,s1=0;
    for( i = 1 ; i <= n ; i++)
    {
        s = 0;
        for( j = 1 ; j <= m; j++)
            s+=v[i][j] * semn[j];
        s1+=max(s,-s);
    }
    best = max(best,s1);
}

void back(int k)
{

    if(k == m+1) solve();
    else{
        semn[k] = -1;
        back(k+1);
        semn[k] = 1;
        back(k+1);
    }
}

int main()
{

    citire();
    back(1);
    out<<best;
    out.close();
    return 0;
}