Cod sursa(job #2324144)

Utilizator vladadAndries Vlad Andrei vladad Data 20 ianuarie 2019 12:20:25
Problema Jocul Flip Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <cmath>
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int n, m, matrix[16][16], Stotal = 0, flip[16], indAnt[17];
int CalculeazaSuma()
{
    int suma = 0, i, suma2;
    for (int j=0; j<m; j++)
    {
        suma2 = 0;
        for (i=0; i<n; i ++)
            if (flip[i])
                suma2 += - matrix[i][j];
            else
                suma2 += matrix[i][j];
        suma += abs(suma2);
    }
    return suma;
}
void backtracking(int k)
{
    int SumaPas;
    for (int i = indAnt[k]; i<n; i++)
    {
        indAnt[k+1]=i+1;
        flip[i] = 1;
        SumaPas = CalculeazaSuma();
        if (SumaPas > Stotal)
            Stotal = SumaPas;
        backtracking(k+1);
        flip[i] = 0;
    }
}
int main()
{
    f >> n >> m;
    int i, j;
    for (i=0; i<n; i++)
        for(j=0; j<m; j++)
            f >> matrix[i][j];
    backtracking(0);
    g << Stotal;
    return 0;
}