Cod sursa(job #924454)

Utilizator vatmanVames Vatmanu vatman Data 24 martie 2013 11:34:09
Problema Jocul Flip Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <stdio.h>
 
int N, M, smax;
int v[16][16];
int w[34], k = 0;
 
void citire()
{
    scanf("%d%d", &N, &M);
    for (int i = 0; i < N; i++)
        for (int j = 0; j < M; j++)
            scanf("%d", &(v[i][j]));
}
 
int suma_flip(int j)
{
    int i, s = 0;
    for (i = 0; i < N; i++)
        if (w[i] == 0)
            s += v[i][j];
        else
            s -= v[i][j];
    if (s > 0)
        return s;
    else
        return -s;
}
 
int suma()
{
    int i, s = 0;
    for (i = 0; i < M; i++)
        s += suma_flip(i);
    return s;
}
 
int main()
{
    freopen("flip.in", "r", stdin);
    freopen("flip.out", "w", stdout);
 
    citire();
 
    int i, s;
    for (i = 0; i <= N + M; i++)
        w[i] = -1;
    while (k >= 0) {
        if (k >= N)
            k--;
        else if (w[k] < 1) {
            w[k]++;
            if (w[N - 1] != -1) {
                s = suma();
                if (s > smax)
                    smax = s;
            }
            k++;
        } else {
            w[k] = -1;
            k++;
        }
    }
    printf("\n%d", smax);
    return 0;
}