Cod sursa(job #2427737)

Utilizator ProBatmanBalint Leonard ProBatman Data 1 iunie 2019 23:57:19
Problema Jocul Flip Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <iostream>
#include <fstream>
#include <cmath>

using namespace std;

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

const int CMAX = 20;
int s = 0 , n , m , mat[CMAX][CMAX] , sgn[CMAX] , maxim = -1000010;

void afisare()
{
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            cout << mat[i][j]*sgn[j] << " ";
        }
        cout << '\n';
    }
}

long long suma()
{
    long long sm = 0 , sm1 = 0;
    for(int i=1;i<=n;i++)
    {
        sm1 = 0;
        for(int j=1;j<=m;j++)
        {
            sm1+=(mat[i][j]*sgn[j]);
        }
        sm+=abs(sm1);
    }
    return sm;
}

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

void bkt(int k)
{
    if(k==m+1)
    {
        s = suma();
        if(maxim<s)
            maxim = s;
    }
    else
    {
        sgn[k] = 1;
        bkt(k+1);
        sgn[k] = -1;
        bkt(k+1);
    }
}

int main()
{
    citire();
    for(int i=1;i<=m;i++)sgn[i] = 1;
    bkt(1);
    fout << maxim;
    return 0;
}