func_code_string: #include <bits/stdc++.h>   const int G[8][2] = {{0, 4}, {1, 5}, {2, 6}, {3, 7},                        {0, 2}, {1, 6}, {3, 4}, {5, 7}};   int f[(1 << 8)], g[1111];   int max(int a, int b) { return a > b ? a : b; }   int min(int a, int b) { return a < b ? a : b; }   int main() {     int n;     int i, j, k, _;     f[0] = 0;     memset(g, 0, sizeof g);     for (i = 0; i < 8; ++i) {       j = G[i][0];       k = G[i][1];       g[j] |= 1 << k;       g[k] |= 1 << j;     }     for (i = 1; i < (1 << 8); ++i) {       j = i & (i - 1);       f[i] = max(f[j], f[j & ~g[__builtin_ctz(i)]] + 1);     }     scanf( %d , &n);     n -= 2;     for (i = 1, j = n; i < j; ++i, --j) g[i] = (1 << 8) - 1;     if (i == j) g[i] = 0x55;     for (scanf( %d , &_); _; --_) {       scanf( %d%d , &i, &j);       --i;       --j;       k = min(i, n - i + 1);       g[k] &= (i == k ? ~0x44 : ~0x88);       k = min(j, n - j + 1);       g[k] &= (j == k ? ~0x11 : ~0x22);     }     for (k = 0, i = 1, j = n; i < j; ++i, --j) k += f[g[i]];     if (i == j && g[i]) ++k;     printf( %d , k);     return 0;   }   