Submission #66703252
Source Code Expand
Copy
#include <stdio.h>#include <inttypes.h>int H, W;uint64_t A[24][24];uint64_t all = 0;char put[24][24];uint64_t calc(int y, int x, uint64_t cur) {if (y >= H) {return all ^ cur;} else if (x >= W) {return calc(y + 1, 0, cur);} else {uint64_t ans, candidate;/* 置かない */ans = calc(y, x + 1, cur);if (!put[y][x]) {put[y][x] = 1;/* 横に置く */
#include <stdio.h>
#include <inttypes.h>
int H, W;
uint64_t A[24][24];
uint64_t all = 0;
char put[24][24];
uint64_t calc(int y, int x, uint64_t cur) {
if (y >= H) {
return all ^ cur;
} else if (x >= W) {
return calc(y + 1, 0, cur);
} else {
uint64_t ans, candidate;
/* 置かない */
ans = calc(y, x + 1, cur);
if (!put[y][x]) {
put[y][x] = 1;
/* 横に置く */
if (x + 1 < W && !put[y][x + 1]) {
put[y][x + 1] = 1;
candidate = calc(y, x + 1, cur ^ A[y][x] ^ A[y][x + 1]);
if (candidate > ans) ans = candidate;
put[y][x + 1] = 0;
}
/* 縦に置く */
if (y + 1 < H && !put[y + 1][x]) {
put[y + 1][x] = 1;
candidate = calc(y, x + 1, cur ^ A[y][x] ^ A[y + 1][x]);
if (candidate > ans) ans = candidate;
put[y + 1][x] = 0;
}
put[y][x] = 0;
}
return ans;
}
}
int main(void) {
int i, j;
if (scanf("%d%d", &H, &W) != 2) return 1;
for (i = 0; i < H; i++) {
for (j = 0; j < W; j++) {
if (scanf("%" SCNu64, &A[i][j]) != 1) return 1;
all ^= A[i][j];
}
}
printf("%" PRIu64 "\n", calc(0, 0, 0));
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - Domino Covering XOR |
| User | mikecat |
| Language | C (gcc 12.2.0) |
| Score | 425 |
| Code Size | 1145 Byte |
| Status | AC |
| Exec Time | 3 ms |
| Memory | 1748 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 425 / 425 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt, 01_random_25.txt, 01_random_26.txt, 01_random_27.txt, 01_random_28.txt, 01_random_29.txt, 01_random_30.txt, 01_random_31.txt, 01_random_32.txt, 01_random_33.txt, 01_random_34.txt, 01_random_35.txt, 01_random_36.txt, 01_random_37.txt, 01_random_38.txt, 01_random_39.txt, 01_random_40.txt, 01_random_41.txt, 01_random_42.txt, 01_random_43.txt, 01_random_44.txt, 01_random_45.txt, 01_random_46.txt, 01_random_47.txt, 01_random_48.txt, 01_random_49.txt, 01_random_50.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 1 ms | 1628 KiB |
| 00_sample_01.txt | AC | 0 ms | 1620 KiB |
| 00_sample_02.txt | AC | 2 ms | 1644 KiB |
| 01_random_03.txt | AC | 1 ms | 1640 KiB |
| 01_random_04.txt | AC | 2 ms | 1720 KiB |
| 01_random_05.txt | AC | 3 ms | 1716 KiB |
| 01_random_06.txt | AC | 2 ms | 1628 KiB |
| 01_random_07.txt | AC | 2 ms | 1576 KiB |
| 01_random_08.txt | AC | 1 ms | 1716 KiB |
| 01_random_09.txt | AC | 1 ms | 1572 KiB |
| 01_random_10.txt | AC | 2 ms | 1704 KiB |
| 01_random_11.txt | AC | 2 ms | 1744 KiB |
| 01_random_12.txt | AC | 3 ms | 1624 KiB |
| 01_random_13.txt | AC | 1 ms | 1572 KiB |
| 01_random_14.txt | AC | 1 ms | 1568 KiB |
| 01_random_15.txt | AC | 1 ms | 1624 KiB |
| 01_random_16.txt | AC | 1 ms | 1720 KiB |
| 01_random_17.txt | AC | 1 ms | 1648 KiB |
| 01_random_18.txt | AC | 0 ms | 1740 KiB |
| 01_random_19.txt | AC | 3 ms | 1640 KiB |
| 01_random_20.txt | AC | 0 ms | 1648 KiB |
| 01_random_21.txt | AC | 0 ms | 1748 KiB |
| 01_random_22.txt | AC | 0 ms | 1648 KiB |
| 01_random_23.txt | AC | 1 ms | 1740 KiB |
| 01_random_24.txt | AC | 2 ms | 1732 KiB |
| 01_random_25.txt | AC | 0 ms | 1712 KiB |
| 01_random_26.txt | AC | 1 ms | 1624 KiB |
| 01_random_27.txt | AC | 1 ms | 1592 KiB |
| 01_random_28.txt | AC | 1 ms | 1720 KiB |
| 01_random_29.txt | AC | 1 ms | 1736 KiB |
| 01_random_30.txt | AC | 1 ms | 1716 KiB |
| 01_random_31.txt | AC | 2 ms | 1704 KiB |
| 01_random_32.txt | AC | 0 ms | 1624 KiB |
| 01_random_33.txt | AC | 0 ms | 1648 KiB |
| 01_random_34.txt | AC | 1 ms | 1728 KiB |
| 01_random_35.txt | AC | 1 ms | 1616 KiB |
| 01_random_36.txt | AC | 0 ms | 1620 KiB |
| 01_random_37.txt | AC | 1 ms | 1644 KiB |
| 01_random_38.txt | AC | 2 ms | 1652 KiB |
| 01_random_39.txt | AC | 2 ms | 1584 KiB |
| 01_random_40.txt | AC | 2 ms | 1612 KiB |
| 01_random_41.txt | AC | 1 ms | 1728 KiB |
| 01_random_42.txt | AC | 0 ms | 1628 KiB |
| 01_random_43.txt | AC | 2 ms | 1620 KiB |
| 01_random_44.txt | AC | 3 ms | 1640 KiB |
| 01_random_45.txt | AC | 3 ms | 1748 KiB |
| 01_random_46.txt | AC | 1 ms | 1624 KiB |
| 01_random_47.txt | AC | 0 ms | 1728 KiB |
| 01_random_48.txt | AC | 1 ms | 1712 KiB |
| 01_random_49.txt | AC | 0 ms | 1568 KiB |
| 01_random_50.txt | AC | 1 ms | 1724 KiB |