Cod sursa(job #601425)

Utilizator vlad2901Vlad Berindei vlad2901 Data 6 iulie 2011 15:57:57
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <stdio.h>
#define MAX 16

int sol[MAX], max, n, m, a[MAX][MAX];

void back(int k);

int get_sum();

int main()
{

    int i, j;
    FILE *fin = freopen("flip.in", "r", stdin);
    FILE *fout = freopen("flip.out", "w", stdout);

    scanf("%d %d", &n, &m);

    for(i=0;i<n;++i)
    {
        for(j=0;j<m;++j)
        {
            scanf("%d", &a[i][j]);
        }
    }

    back(0);

    printf("%d\n", max);


}


void back(int k)
{
    int i, sum;
    if(k == n)
    {
        sum = get_sum();
        if(sum > max)
        {
            max = sum;
        }
    }
    else
    {
        for(i=-1;i<=1;i+=2)
        {
            sol[k] = i;
            back(k+1);
        }
    }

}

int get_sum()
{
    int i, j, sum, total;
    total = 0;
    for(j=0;j<m;++j)
    {
        sum = 0;
        for(i=0;i<n;++i)
        {
            sum += a[i][j] * sol[i];
        }
        if(sum < 0)
        {
            sum *= -1;
        }
        total += sum;
    }
    return total;
}