Cod sursa(job #1982848)

Utilizator dragomir_ioanDragomir Ioan dragomir_ioan Data 20 mai 2017 13:43:25
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<cstdio>
using namespace std;

#define Abs(x) (x<0?-x:x)

unsigned int mask_i[17], mask_j[17], state;
const unsigned int minusunu = -1;
int a[17][17], max = -257000000, s, i, j, n, m;

int main() {
    freopen("flip.in", "r", stdin);
    freopen("flip.out", "w", stdout);

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

    for(i=1; i<=n; i++) mask_i[i] = 1 << (i - 1);
    for(j=1; j<=m; j++) mask_j[j] = 1 << (j + n - 1);

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

    state = 1 << (n+m+1)-1;

    do {
        s = 0;
        for(i = 1; i <= n; i++)
            for(j = 1; j <= m; j++)
                s += a[i][j] * ((state & mask_i[i])?1:-1) * ((state & mask_j[j])?1:-1);
        if(Abs(s) > max)
            max = Abs(s);
        state--;
    } while(state != minusunu);

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

    return 0;
}