Cod sursa(job #3301680)

Utilizator ScratchQScratchQ ScratchQ Data 29 iunie 2025 02:00:53
Problema Jocul Flip Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 12.14 kb
#include <cstdio>
int n, m, a[16][16], s[16];
int main() {
    freopen ("flip.in", "r", stdin), freopen ("flip.out", "w", stdout);
    scanf("%d %d", &n, &m);
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            scanf("%d", &a[i][j]);
            s[i] += a[i][j];
            a[i][j] *= 2;
        }
    }
    int best = -(int) 1e9;
    for (int mask = 0; mask < (1 << m); mask++) {
        int cur = 0, sum;
        sum = -s[0];
        sum += a[0][0] * !!(mask & 1);
        sum += a[0][1] * !!(mask & 2);
        sum += a[0][2] * !!(mask & 4);
        sum += a[0][3] * !!(mask & 8);
        sum += a[0][4] * !!(mask & 16);
        sum += a[0][5] * !!(mask & 32);
        sum += a[0][6] * !!(mask & 64);
        sum += a[0][7] * !!(mask & 128);
        sum += a[0][8] * !!(mask & 256);
        sum += a[0][9] * !!(mask & 512);
        sum += a[0][10] * !!(mask & 1024);
        sum += a[0][11] * !!(mask & 2048);
        sum += a[0][12] * !!(mask & 4096);
        sum += a[0][13] * !!(mask & 8192);
        sum += a[0][14] * !!(mask & 16384);
        sum += a[0][15] * !!(mask & 32768);
        cur += (sum > 0) ? sum : -sum;
        sum = -s[1];
        sum += a[1][0] * !!(mask & 1);
        sum += a[1][1] * !!(mask & 2);
        sum += a[1][2] * !!(mask & 4);
        sum += a[1][3] * !!(mask & 8);
        sum += a[1][4] * !!(mask & 16);
        sum += a[1][5] * !!(mask & 32);
        sum += a[1][6] * !!(mask & 64);
        sum += a[1][7] * !!(mask & 128);
        sum += a[1][8] * !!(mask & 256);
        sum += a[1][9] * !!(mask & 512);
        sum += a[1][10] * !!(mask & 1024);
        sum += a[1][11] * !!(mask & 2048);
        sum += a[1][12] * !!(mask & 4096);
        sum += a[1][13] * !!(mask & 8192);
        sum += a[1][14] * !!(mask & 16384);
        sum += a[1][15] * !!(mask & 32768);
        cur += (sum > 0) ? sum : -sum;
        sum = -s[2];
        sum += a[2][0] * !!(mask & 1);
        sum += a[2][1] * !!(mask & 2);
        sum += a[2][2] * !!(mask & 4);
        sum += a[2][3] * !!(mask & 8);
        sum += a[2][4] * !!(mask & 16);
        sum += a[2][5] * !!(mask & 32);
        sum += a[2][6] * !!(mask & 64);
        sum += a[2][7] * !!(mask & 128);
        sum += a[2][8] * !!(mask & 256);
        sum += a[2][9] * !!(mask & 512);
        sum += a[2][10] * !!(mask & 1024);
        sum += a[2][11] * !!(mask & 2048);
        sum += a[2][12] * !!(mask & 4096);
        sum += a[2][13] * !!(mask & 8192);
        sum += a[2][14] * !!(mask & 16384);
        sum += a[2][15] * !!(mask & 32768);
        cur += (sum > 0) ? sum : -sum;
        sum = -s[3];
        sum += a[3][0] * !!(mask & 1);
        sum += a[3][1] * !!(mask & 2);
        sum += a[3][2] * !!(mask & 4);
        sum += a[3][3] * !!(mask & 8);
        sum += a[3][4] * !!(mask & 16);
        sum += a[3][5] * !!(mask & 32);
        sum += a[3][6] * !!(mask & 64);
        sum += a[3][7] * !!(mask & 128);
        sum += a[3][8] * !!(mask & 256);
        sum += a[3][9] * !!(mask & 512);
        sum += a[3][10] * !!(mask & 1024);
        sum += a[3][11] * !!(mask & 2048);
        sum += a[3][12] * !!(mask & 4096);
        sum += a[3][13] * !!(mask & 8192);
        sum += a[3][14] * !!(mask & 16384);
        sum += a[3][15] * !!(mask & 32768);
        cur += (sum > 0) ? sum : -sum;
        sum = -s[4];
        sum += a[4][0] * !!(mask & 1);
        sum += a[4][1] * !!(mask & 2);
        sum += a[4][2] * !!(mask & 4);
        sum += a[4][3] * !!(mask & 8);
        sum += a[4][4] * !!(mask & 16);
        sum += a[4][5] * !!(mask & 32);
        sum += a[4][6] * !!(mask & 64);
        sum += a[4][7] * !!(mask & 128);
        sum += a[4][8] * !!(mask & 256);
        sum += a[4][9] * !!(mask & 512);
        sum += a[4][10] * !!(mask & 1024);
        sum += a[4][11] * !!(mask & 2048);
        sum += a[4][12] * !!(mask & 4096);
        sum += a[4][13] * !!(mask & 8192);
        sum += a[4][14] * !!(mask & 16384);
        sum += a[4][15] * !!(mask & 32768);
        cur += (sum > 0) ? sum : -sum;
        sum = -s[5];
        sum += a[5][0] * !!(mask & 1);
        sum += a[5][1] * !!(mask & 2);
        sum += a[5][2] * !!(mask & 4);
        sum += a[5][3] * !!(mask & 8);
        sum += a[5][4] * !!(mask & 16);
        sum += a[5][5] * !!(mask & 32);
        sum += a[5][6] * !!(mask & 64);
        sum += a[5][7] * !!(mask & 128);
        sum += a[5][8] * !!(mask & 256);
        sum += a[5][9] * !!(mask & 512);
        sum += a[5][10] * !!(mask & 1024);
        sum += a[5][11] * !!(mask & 2048);
        sum += a[5][12] * !!(mask & 4096);
        sum += a[5][13] * !!(mask & 8192);
        sum += a[5][14] * !!(mask & 16384);
        sum += a[5][15] * !!(mask & 32768);
        cur += (sum > 0) ? sum : -sum;
        sum = -s[6];
        sum += a[6][0] * !!(mask & 1);
        sum += a[6][1] * !!(mask & 2);
        sum += a[6][2] * !!(mask & 4);
        sum += a[6][3] * !!(mask & 8);
        sum += a[6][4] * !!(mask & 16);
        sum += a[6][5] * !!(mask & 32);
        sum += a[6][6] * !!(mask & 64);
        sum += a[6][7] * !!(mask & 128);
        sum += a[6][8] * !!(mask & 256);
        sum += a[6][9] * !!(mask & 512);
        sum += a[6][10] * !!(mask & 1024);
        sum += a[6][11] * !!(mask & 2048);
        sum += a[6][12] * !!(mask & 4096);
        sum += a[6][13] * !!(mask & 8192);
        sum += a[6][14] * !!(mask & 16384);
        sum += a[6][15] * !!(mask & 32768);
        cur += (sum > 0) ? sum : -sum;
        sum = -s[7];
        sum += a[7][0] * !!(mask & 1);
        sum += a[7][1] * !!(mask & 2);
        sum += a[7][2] * !!(mask & 4);
        sum += a[7][3] * !!(mask & 8);
        sum += a[7][4] * !!(mask & 16);
        sum += a[7][5] * !!(mask & 32);
        sum += a[7][6] * !!(mask & 64);
        sum += a[7][7] * !!(mask & 128);
        sum += a[7][8] * !!(mask & 256);
        sum += a[7][9] * !!(mask & 512);
        sum += a[7][10] * !!(mask & 1024);
        sum += a[7][11] * !!(mask & 2048);
        sum += a[7][12] * !!(mask & 4096);
        sum += a[7][13] * !!(mask & 8192);
        sum += a[7][14] * !!(mask & 16384);
        sum += a[7][15] * !!(mask & 32768);
        cur += (sum > 0) ? sum : -sum;
        sum = -s[8];
        sum += a[8][0] * !!(mask & 1);
        sum += a[8][1] * !!(mask & 2);
        sum += a[8][2] * !!(mask & 4);
        sum += a[8][3] * !!(mask & 8);
        sum += a[8][4] * !!(mask & 16);
        sum += a[8][5] * !!(mask & 32);
        sum += a[8][6] * !!(mask & 64);
        sum += a[8][7] * !!(mask & 128);
        sum += a[8][8] * !!(mask & 256);
        sum += a[8][9] * !!(mask & 512);
        sum += a[8][10] * !!(mask & 1024);
        sum += a[8][11] * !!(mask & 2048);
        sum += a[8][12] * !!(mask & 4096);
        sum += a[8][13] * !!(mask & 8192);
        sum += a[8][14] * !!(mask & 16384);
        sum += a[8][15] * !!(mask & 32768);
        cur += (sum > 0) ? sum : -sum;
        sum = -s[9];
        sum += a[9][0] * !!(mask & 1);
        sum += a[9][1] * !!(mask & 2);
        sum += a[9][2] * !!(mask & 4);
        sum += a[9][3] * !!(mask & 8);
        sum += a[9][4] * !!(mask & 16);
        sum += a[9][5] * !!(mask & 32);
        sum += a[9][6] * !!(mask & 64);
        sum += a[9][7] * !!(mask & 128);
        sum += a[9][8] * !!(mask & 256);
        sum += a[9][9] * !!(mask & 512);
        sum += a[9][10] * !!(mask & 1024);
        sum += a[9][11] * !!(mask & 2048);
        sum += a[9][12] * !!(mask & 4096);
        sum += a[9][13] * !!(mask & 8192);
        sum += a[9][14] * !!(mask & 16384);
        sum += a[9][15] * !!(mask & 32768);
        cur += (sum > 0) ? sum : -sum;
        sum = -s[10];
        sum += a[10][0] * !!(mask & 1);
        sum += a[10][1] * !!(mask & 2);
        sum += a[10][2] * !!(mask & 4);
        sum += a[10][3] * !!(mask & 8);
        sum += a[10][4] * !!(mask & 16);
        sum += a[10][5] * !!(mask & 32);
        sum += a[10][6] * !!(mask & 64);
        sum += a[10][7] * !!(mask & 128);
        sum += a[10][8] * !!(mask & 256);
        sum += a[10][9] * !!(mask & 512);
        sum += a[10][10] * !!(mask & 1024);
        sum += a[10][11] * !!(mask & 2048);
        sum += a[10][12] * !!(mask & 4096);
        sum += a[10][13] * !!(mask & 8192);
        sum += a[10][14] * !!(mask & 16384);
        sum += a[10][15] * !!(mask & 32768);
        cur += (sum > 0) ? sum : -sum;
        sum = -s[11];
        sum += a[11][0] * !!(mask & 1);
        sum += a[11][1] * !!(mask & 2);
        sum += a[11][2] * !!(mask & 4);
        sum += a[11][3] * !!(mask & 8);
        sum += a[11][4] * !!(mask & 16);
        sum += a[11][5] * !!(mask & 32);
        sum += a[11][6] * !!(mask & 64);
        sum += a[11][7] * !!(mask & 128);
        sum += a[11][8] * !!(mask & 256);
        sum += a[11][9] * !!(mask & 512);
        sum += a[11][10] * !!(mask & 1024);
        sum += a[11][11] * !!(mask & 2048);
        sum += a[11][12] * !!(mask & 4096);
        sum += a[11][13] * !!(mask & 8192);
        sum += a[11][14] * !!(mask & 16384);
        sum += a[11][15] * !!(mask & 32768);
        cur += (sum > 0) ? sum : -sum;
        sum = -s[12];
        sum += a[12][0] * !!(mask & 1);
        sum += a[12][1] * !!(mask & 2);
        sum += a[12][2] * !!(mask & 4);
        sum += a[12][3] * !!(mask & 8);
        sum += a[12][4] * !!(mask & 16);
        sum += a[12][5] * !!(mask & 32);
        sum += a[12][6] * !!(mask & 64);
        sum += a[12][7] * !!(mask & 128);
        sum += a[12][8] * !!(mask & 256);
        sum += a[12][9] * !!(mask & 512);
        sum += a[12][10] * !!(mask & 1024);
        sum += a[12][11] * !!(mask & 2048);
        sum += a[12][12] * !!(mask & 4096);
        sum += a[12][13] * !!(mask & 8192);
        sum += a[12][14] * !!(mask & 16384);
        sum += a[12][15] * !!(mask & 32768);
        cur += (sum > 0) ? sum : -sum;
        sum = -s[13];
        sum += a[13][0] * !!(mask & 1);
        sum += a[13][1] * !!(mask & 2);
        sum += a[13][2] * !!(mask & 4);
        sum += a[13][3] * !!(mask & 8);
        sum += a[13][4] * !!(mask & 16);
        sum += a[13][5] * !!(mask & 32);
        sum += a[13][6] * !!(mask & 64);
        sum += a[13][7] * !!(mask & 128);
        sum += a[13][8] * !!(mask & 256);
        sum += a[13][9] * !!(mask & 512);
        sum += a[13][10] * !!(mask & 1024);
        sum += a[13][11] * !!(mask & 2048);
        sum += a[13][12] * !!(mask & 4096);
        sum += a[13][13] * !!(mask & 8192);
        sum += a[13][14] * !!(mask & 16384);
        sum += a[13][15] * !!(mask & 32768);
        cur += (sum > 0) ? sum : -sum;
        sum = -s[14];
        sum += a[14][0] * !!(mask & 1);
        sum += a[14][1] * !!(mask & 2);
        sum += a[14][2] * !!(mask & 4);
        sum += a[14][3] * !!(mask & 8);
        sum += a[14][4] * !!(mask & 16);
        sum += a[14][5] * !!(mask & 32);
        sum += a[14][6] * !!(mask & 64);
        sum += a[14][7] * !!(mask & 128);
        sum += a[14][8] * !!(mask & 256);
        sum += a[14][9] * !!(mask & 512);
        sum += a[14][10] * !!(mask & 1024);
        sum += a[14][11] * !!(mask & 2048);
        sum += a[14][12] * !!(mask & 4096);
        sum += a[14][13] * !!(mask & 8192);
        sum += a[14][14] * !!(mask & 16384);
        sum += a[14][15] * !!(mask & 32768);
        cur += (sum > 0) ? sum : -sum;
        sum = -s[15];
        sum += a[15][0] * !!(mask & 1);
        sum += a[15][1] * !!(mask & 2);
        sum += a[15][2] * !!(mask & 4);
        sum += a[15][3] * !!(mask & 8);
        sum += a[15][4] * !!(mask & 16);
        sum += a[15][5] * !!(mask & 32);
        sum += a[15][6] * !!(mask & 64);
        sum += a[15][7] * !!(mask & 128);
        sum += a[15][8] * !!(mask & 256);
        sum += a[15][9] * !!(mask & 512);
        sum += a[15][10] * !!(mask & 1024);
        sum += a[15][11] * !!(mask & 2048);
        sum += a[15][12] * !!(mask & 4096);
        sum += a[15][13] * !!(mask & 8192);
        sum += a[15][14] * !!(mask & 16384);
        sum += a[15][15] * !!(mask & 32768);
        cur += (sum > 0) ? sum : -sum;
        best = (cur > best) ? cur : best;
    }
    printf("%d\n", best);
}