Cod sursa(job #1152163)

Utilizator ilinoiuflaviusIlinoiu Flavius ilinoiuflavius Data 24 martie 2014 16:16:48
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <fstream>
#define nmax 17
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int n, m;
long v[nmax][nmax], best, sc[nmax]; /// sc = semn coloana
void calcul()
{
    long nr,sum=0;
    for(int i=1;i<=n;i++)
    {
        nr=0;
        for(int j=1;j<=m;j++)
            nr += v[i][j] * sc[j];

        sum += max(nr,-nr);
    }
    best = max(best,sum);
}
void backt(int k)
{
    if(k==m+1){calcul();return;}
    sc[k]=-1;
    backt(k+1);
    sc[k]=1;
    backt(k+1);
}
int main()
{
    ///citire
    f>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            f>>v[i][j];
    ///backtracking
    backt(1); g << best;
    return 0;
}