Cod sursa(job #1982809)

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

unsigned int mask_i[17], mask_j[17];
int a[17][17];

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

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

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

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

    unsigned int idk = 1 << (n+m-1);

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

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

    return 0;
}