Cod sursa(job #1817236)

Utilizator BovisioNitica Ionut Bogdan Bovisio Data 27 noiembrie 2016 15:21:40
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
#include <cstdio>

using namespace std;

int n,m,a[17][17];

void valid(int x)
{
    int sumneg = 0, sumpoz = 0;
    for(int i=1;i<=n;i++)
    {
        if(a[i][x] > 0)
            sumpoz += a[i][x];
        else
            sumneg += a[i][x];
    }
    sumneg = sumneg * -1;
    if(sumneg > sumpoz)
    {
        for(int i=1;i<=n;i++)
            a[i][x] = a[i][x] * -1;
    }
}

void valid2(int x)
{
    int sum=0;
    for(int i=1;i<=m;i++)
        sum += a[x][i];
    if(sum < 0)
        for(int i=1;i<=m;i++)
            a[x][i] = a[x][i] *-1;
}

void bck(int x)
{
    for(int i=1;i<=n;i++)
    {
        valid(x);
        if(x == m)
            valid2(i);
        else
            bck(x+1);
    }
}

int main()
{
    int summax=0;
    freopen("flip.in","r",stdin);
    freopen("flip.","w",stdout);
    scanf("%i %i",&n,&m);
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
            scanf("%i",&a[i][j]);
    }
    bck(1);
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            //printf("%i ",a[i][j]);
            summax += a[i][j];
        }
        //printf("\n");
    }
    printf("%i",summax);
    return 0;
}