Cod sursa(job #1775497)

Utilizator LazarAndreiLazar Andrei Teodor LazarAndrei Data 10 octombrie 2016 15:01:15
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <bits/stdc++.h>
using namespace std;

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

int Max , N , M , arr[25][25] , anw[25] , s[25];

void read ()
{
    in >> N >> M;
    for(int i = 1 ; i <= N ; ++ i)
    {
        for(int j = 1 ; j <= M ; ++ j)
        {
            in >> arr[i][j];
            s[i] += arr[i][j];
        }
    }
}

int Calc()
{
    int v[20] , i , j , sum = 0;

    for(i = 1 ; i <= N ; ++ i)
        v[i] = s[i];

    for(i = 1 ; i <= M ; ++ i)
    {
        if(anw[i] == 1)
        {
            for(j = 1 ; j <= N ; ++ j)
                v[j] += -2*arr[j][i];

        }
    }

    for(i = 1 ; i <= N ; ++ i)
    {
        if(v[i] < 0)
            v[i] = -1*v[i];
        sum += v[i];
    }
    return sum;
}


void back (int k)
{
    int x;
    if(k == M + 1)
    {
        x = Calc();
        if(x > Max)
            Max = x;
    }
    else
    {
        for(int i = 0 ; i <= 1 ; ++ i)
        {
            anw[k] = i;
            back(k + 1);
        }


    }
}

int main()
{
    read();
    back(1);
    out << Max;
    return 0;
}