Cod sursa(job #1843875)

Utilizator danyvsDan Castan danyvs Data 9 ianuarie 2017 15:06:38
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

const int NMAX = 17;

int A[NMAX][NMAX], n, m;
long long sum_max;

void read()
{
    int i, j;
    fin >> n>> m;
    for (i = 1; i <= n; ++ i)
        for (j = 1; j <= m; ++ j)
            fin >> A[i][j];
}

void sum()
{
    int i, j;
    long long sum, s;
    sum = 0;
    for (j = 1; j <= m; ++ j)
        {
         s = 0;
         for (i = 1; i <= n; ++ i)
            s += 1LL * A[i][j];
         if (s < 0)
            s *= -1;
         sum += s;
        }
    sum_max = max(sum_max, sum);
}

void backtracking(int k)
{
    int i, j;
    if (k == n + 1)
        sum();
    else
        for (i = -1; i <= 1; i += 2)
            {
             for (j = 1; j <= m; ++ j)
                A[k][j] *= i;
             backtracking(k + 1);
            }
}

int main()
{
    read();
    fin.close();
    sum_max = 1LL * NMAX * NMAX * (-10e6);
    backtracking(1);
    fout << sum_max << "\n";
    fout.close();
    return 0;
}