Cod sursa(job #2337300)

Utilizator MateiAruxandeiMateiStefan MateiAruxandei Data 6 februarie 2019 11:20:45
Problema Jocul Flip Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>
#include <climits>

using namespace std;

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

int mat[20][20], n,m, sum, maxx = INT_MIN;
int l[20], col[20];

void bkt(int pas)
{
    if(pas == n + 1)
    {
        int bigSum = 0;
        for(int j = 1; j <= m; ++j){
            sum = 0;
            for(int i = 1; i <= n; ++i)
                if((l[i] == 1))
                    sum += (mat[i][j] * -1);
                else
                    sum += mat[i][j];
            if(sum < 0)
                bigSum += (-sum);
            else bigSum += sum;
        }
        maxx = max(maxx, bigSum);
        return;
    }

    if(pas <= n)
    {
        l[pas] = 1;
        bkt(pas + 1);
        l[pas] = 0;
        bkt(pas + 1);
    }
}

int main()
{
    fin >> n >> m;

    for(int i = 1; i <= n; ++i)
        for(int j = 1; j <= m; ++j)
            fin >> mat[i][j];

    bkt(1);

    fout << maxx << '\n';
    return 0;
}