Cod sursa(job #2703359)

Utilizator cyg_mihaizMIHAI ZARAFIU cyg_mihaiz Data 8 februarie 2021 12:43:57
Problema Jocul Flip Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>
#include <cmath>

using namespace std;
const short NMAX = 16;

int mat[NMAX + 5][NMAX + 5];
int n, m, ans;

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

int solve()
{
    int i,j,temp,s = 0;
    for(i = 1; i <= n; i++)
    {
        temp = 0;
        for(j = 1; j <= m; j++)
            temp = temp + mat[i][j];
        temp = (int)abs(temp);
        s = s + temp;
    }
    return s;
}

void backt(int step)
{
    int i;
    if(step == m + 1)
    {
        ans = max(ans, solve());
        return;
    }
    backt(step + 1);
    for(i = 1; i <= n; i++)
        mat[i][step] = mat[i][step] * (-1);
    backt(step + 1);
    for(i = 1; i <= n; i++)
        mat[i][step] = mat[i][step] * (-1);
}

int main()
{
    ios_base::sync_with_stdio(false);
    fin.tie(NULL);

    int i,j;
    fin >> n >> m;
    for(i = 1; i <= n; i++)
        for(j = 1; j <= m; j++)
            fin >> mat[i][j];
    backt(1);
    fout << ans;
    return 0;
}