Cod sursa(job #2577351)

Utilizator FLORENTIN-GIULIANO.DUMITRUDumitru Florentin Giuliano FLORENTIN-GIULIANO.DUMITRU Data 9 martie 2020 08:24:57
Problema Jocul Flip Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <iostream>
#include <fstream>

using namespace std;

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

long maxi;
int n, m;

void back(int ant_l, long a[17][17],long s){
    for (int linie = ant_l + 1; linie < n; linie ++)
    {
        back(linie, a,s);
        for (int j = 0; j < m; j ++)
        {
            a[linie][j] = -a[linie][j];
            s += 2*a[linie][j];
        }
        for (int j = 0; j < m; j ++)
        {
                long d = 0;
                for (int i = 0; i < n; i ++)
                    d += a[i][j];
            if (d < 0)
                for (int i = 0; i < n; i ++)
                {
                    a[i][j]= -a[i][j];
                    s += 2*a[i][j];
                }
        }
        maxi = max(s,maxi);
        back(linie,a,s);
    }
}

int main()
{
    in >> n >> m;
    long a[17][17];
    long s;
    for (int i = 0; i < n; i ++)
        for (int j = 0; j < m; j ++){
            in >> a[i][j];
            maxi += a[i][j];
        }
    cout << maxi << endl;
    back(-1,a,maxi);
    out << maxi;
    in.close();
    out.close();
    return 0;
}