Cod sursa(job #1349602)

Utilizator ducu97Radu Seteanu ducu97 Data 20 februarie 2015 12:37:21
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>
#define NMax 20

using namespace std;

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

int M[NMax][NMax], n, m, Sum;

void calc()
{
    int sum1, sum2, S = 0;
    for(int j = 1; j <= m; j ++)
    {
        sum1 = 0;
        sum2 = 0;
        for(int i = 1; i <=n; i ++)
        {
            sum1 += M[i][j];
            sum2 += -M[i][j];
        }
        S += max( sum1, sum2 );
    }
    if(Sum < S)
        Sum = S;

}

void bck(int l)
{
    if(l > n)
    {
        calc();
        return;
    }
    bck(l + 1);
    for(int j = 1; j <= m; j ++)
        M[l][j] *= (-1);
    bck(l + 1);
    for(int j = 1; j <= m; j ++)
        M[l][j] *= (-1);
}

int main()
{
    int i, j, ok = 1, sum;

    in >> n >> m;

    for(i = 1; i <=n; i ++)
        for(j = 1; j <= m; j ++)
            in >> M[i][j];
    bck(1);
    out << Sum << "\n";
    return 0;
}