ltrominoes.c: In function 'advance':
ltrominoes.c:8:22: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
8 | static char dq[N][1 << N + 1];
| ^~
ltrominoes.c:12:28: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
12 | memset(dq[i], 0, (1 << n + 1) * sizeof *dq[i]);
| ~~^~~
ltrominoes.c:16:36: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
16 | if ((c & 1) == 0 && (b & 1 << n - 1) == 0 && (b & 1 << n - 2) == 0)
| ~~^~~
ltrominoes.c:16:61: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
16 | if ((c & 1) == 0 && (b & 1 << n - 1) == 0 && (b & 1 << n - 2) == 0)
| ~~^~~
ltrominoes.c:17:36: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
17 | dq[0][b << 1 | 1 << n | 1 << n - 1 | 1 << 0] = 1;
| ~~^~~
ltrominoes.c:20:26: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
20 | for (b = 0; b < 1 << n + 1; b++)
| ~~^~~
ltrominoes.c:22:31: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
22 | int b_ = b << 1 & (1 << n + 1) - 1;
| ~~^~~
ltrominoes.c:22:36: warning: suggest parentheses around '-' in operand of '&' [-Wparentheses]
22 | int b_ = b << 1 & (1 << n + 1) - 1;
| ~~~~~~~~~~~~~^~~
ltrominoes.c:24:21: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
24 | if ((c & 1 << i + 1) != 0) {
| ~~^~~
ltrominoes.c:29:43: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
29 | if ((b & 1 << 0) == 0 && (b & 1 << n - 1) == 0)
| ~~^~~
ltrominoes.c:31:35: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
31 | if (i + 2 < n && (b & 1 << n - 1) == 0 && (b & 1 << n - 2) == 0)
| ~~^~~
ltrominoes.c:31:60: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
31 | if (i + 2 < n && (b & 1 << n - 1) == 0 && (b & 1 << n - 2) == 0)
| ~~^~~
ltrominoes.c:32:38: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
32 | dq[i + 1][b_ | 1 << 0 | 1 << n - 1 | 1 << n] = 1;
| ~~^~~
ltrominoes.c:36:22: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
36 | if ((b & 1 << n - 1) == 0)
| ~~^~~
ltrominoes.c:38:35: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
38 | if (i + 2 < n && (b & 1 << n - 1) == 0 && (b & 1 << n - 2) == 0)
| ~~^~~
ltrominoes.c:38:60: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
38 | if (i + 2 < n && (b & 1 << n - 1) == 0 && (b & 1 << n - 2) == 0)
| ~~^~~
ltrominoes.c:39:38: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
39 | dq[i + 1][b_ | 1 << 0 | 1 << n - 1 | 1 << n] = 1;
| ~~^~~
ltrominoes.c: In function 'main':
ltrominoes.c:53:2: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
53 | scanf("%d%d%d", &n, &m, &k);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
ltrominoes.c:55:3: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
55 | scanf("%d%d", &i, &j), i--, j--;
| ^~~~~~~~~~~~~~~~~~~~~