Cod sursa(job #1240483)

Utilizator MacWonkMihai Alexandru Cosmin MacWonk Data 11 octombrie 2014 14:05:32
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int n, m;
int mat[20][20];
int semn[20];
bool ok;
int maxim = 0;

int modul(int x)
{
    if (x < 0) return -x;
    return x;
}

int calc() {

    int sum = 0;

    for (int i=1;i<=n;i++) {
        int scol = 0;
        for (int j=1;j<=m;j++)
            scol += mat[i][j] * semn[j];
        sum += modul(scol);
    }

    return sum;
}

void back(int k)
{
    if (k == m+1)
    {
        if (!ok)
        {
            maxim = calc();
            ok = true;
        }
        else
        {
            int r = calc();
            if (maxim < r)
            {
                maxim = r;
            }
        }
    }
     else
     {
        semn[k] = 1;
        back(k+1);
        semn[k] = -1;
        back(k+1);
     }
}

int main() {

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

    back(1);
    g<<maxim<<'\n';
    return 0;
}