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;
/* */
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#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
AC × 3
AC × 51
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


2025-06-14 (Sat)
00:20:05 +09:00