Cod sursa(job #2130951)

Utilizator SburlyAndrei Florin Sburly Data 14 februarie 2018 09:32:04
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
/********************
    Created by Sburly
********************/
#include <fstream>

using namespace std;

int n, m, st[16];
long int a[16][16];

long int sum()
{
    long int s = 0;
    for(int i = 0; i < m; i++)
    {
        long int temp = 0;
        for(int j = 0; j < n; j++)
            temp+=(st[j])?a[j][i]:-a[j][i];
        s+=max(temp, -temp);
    }
    return s;
}

long int bt()
{
    long int sol = sum();
    int k = 0;
    st[k] = -1;
    while(k >= 0)
    {
        st[k]++;
        if(st[k] < 2)
        {
            if(k == n-1)
                sol = max(sum(), sol);
            else
            {
                k++;
                st[k] = -1;
            }
        }
        else
            k--;
    }
    return sol;
}

int main()
{
    ifstream f("flip.in");
    ofstream g("flip.out");

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

    g << bt();

    return 0;
}