提出 #34800197


ソースコード 拡げる

#include <bits/stdc++.h>

using namespace std;

int main()
{
	ios::sync_with_stdio(0);
	int n, M;
	cin >> n >> M;
	n <<= 1;
	map <int, bool> A;
	while (n --) {
		int x;
		cin >> x;
		A[x] ^= 1;
	}
	int N = 0, s = 0;
	map <int, int> nA;
	for (auto pr : A) {
		if (pr.second) {
			N ++;
			s = (s + pr.first) % M;
			nA[(pr.first * 2) % M] ++;
		}
	}
	vector <int> vA;
	for (auto pr : nA) {
		for (int i = 0; i < pr.second; ++ i) {
			vA.push_back(pr.first);
		}
	}
	if (N % 2 == 0) {
		bool ok = 1;
		int ss = 0;
		for (int i = 0; i < (int) vA.size(); ++ i) {
			ok &= vA[i] == vA[i ^ 1];
			if (i % 2 == 0) ss = (ss + vA[i]) % M;
		}
		if (ss != s) ok = 0;
		if (ok) {
			puts("Bob");
			return 0;
		}
	}
	if (N >= 5) {
		puts("Alice");
		return 0;
	}
	function <bool(int, int, int)> Solve = [&] (int mask, int turn, int target) -> bool
	{
		int c = __builtin_popcount(mask);
		if (c == 1) {
			if (turn == 0) return vA[__builtin_ctz(mask)] != target;
			else return 0 == target;
		}
		for (int i = 0; i < (int) vA.size(); ++ i) if (mask >> i & 1) {
			int ntarget = (target + (turn == 0 ? M - vA[i] : 0)) % M;
			if (!Solve(mask ^ 1 << i, turn ^ 1, ntarget)) return 1;
		}
		return 0;
	};
	puts(Solve((1 << (int) vA.size()) - 1, 0, s) ? "Alice" : "Bob");
	return 0;
}

提出情報

提出日時
問題 D - mod M Game
ユーザ bmb87978
言語 C++ (GCC 9.2.1)
得点 700
コード長 1331 Byte
結果 AC
実行時間 480 ms
メモリ 42856 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 700 / 700
結果
AC × 2
AC × 54
セット名 テストケース
Sample 00_sample_00.txt, 00_sample_01.txt
All 00_sample_00.txt, 00_sample_01.txt, 01_pair_1_00.txt, 01_pair_1_01.txt, 01_pair_1_02.txt, 01_pair_1_03.txt, 01_pair_1_04.txt, 01_pair_1_05.txt, 01_pair_1_06.txt, 01_pair_1_07.txt, 01_pair_1_08.txt, 01_pair_1_09.txt, 02_pair_2_00.txt, 02_pair_2_01.txt, 02_pair_2_02.txt, 02_pair_2_03.txt, 02_pair_2_04.txt, 02_pair_2_05.txt, 02_pair_2_06.txt, 02_pair_2_07.txt, 02_pair_2_08.txt, 02_pair_2_09.txt, 02_pair_2_10.txt, 02_pair_2_11.txt, 02_pair_2_12.txt, 02_pair_2_13.txt, 02_pair_2_14.txt, 02_pair_2_15.txt, 02_pair_2_16.txt, 02_pair_2_17.txt, 02_pair_2_18.txt, 02_pair_2_19.txt, 03_random_00.txt, 03_random_01.txt, 03_random_02.txt, 03_random_03.txt, 03_random_04.txt, 04_m_eq_2_00.txt, 04_m_eq_2_01.txt, 04_m_eq_2_02.txt, 04_m_eq_2_03.txt, 04_m_eq_2_04.txt, 05_m_eq_4_00.txt, 05_m_eq_4_01.txt, 05_m_eq_4_02.txt, 05_m_eq_4_03.txt, 05_m_eq_4_04.txt, 05_m_eq_4_05.txt, 05_m_eq_4_06.txt, 05_m_eq_4_07.txt, 05_m_eq_4_08.txt, 05_m_eq_4_09.txt, 06_corner_00.txt, 06_corner_01.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 8 ms 3604 KiB
00_sample_01.txt AC 2 ms 3596 KiB
01_pair_1_00.txt AC 59 ms 3824 KiB
01_pair_1_01.txt AC 97 ms 6412 KiB
01_pair_1_02.txt AC 161 ms 11356 KiB
01_pair_1_03.txt AC 132 ms 9192 KiB
01_pair_1_04.txt AC 33 ms 3600 KiB
01_pair_1_05.txt AC 187 ms 12624 KiB
01_pair_1_06.txt AC 90 ms 5108 KiB
01_pair_1_07.txt AC 51 ms 3584 KiB
01_pair_1_08.txt AC 49 ms 3636 KiB
01_pair_1_09.txt AC 173 ms 12944 KiB
02_pair_2_00.txt AC 46 ms 3532 KiB
02_pair_2_01.txt AC 310 ms 22964 KiB
02_pair_2_02.txt AC 267 ms 20444 KiB
02_pair_2_03.txt AC 64 ms 3932 KiB
02_pair_2_04.txt AC 66 ms 4024 KiB
02_pair_2_05.txt AC 305 ms 22804 KiB
02_pair_2_06.txt AC 247 ms 19488 KiB
02_pair_2_07.txt AC 316 ms 22876 KiB
02_pair_2_08.txt AC 46 ms 3560 KiB
02_pair_2_09.txt AC 316 ms 23032 KiB
02_pair_2_10.txt AC 68 ms 4172 KiB
02_pair_2_11.txt AC 34 ms 3552 KiB
02_pair_2_12.txt AC 325 ms 23040 KiB
02_pair_2_13.txt AC 307 ms 22832 KiB
02_pair_2_14.txt AC 272 ms 20372 KiB
02_pair_2_15.txt AC 36 ms 3436 KiB
02_pair_2_16.txt AC 36 ms 3400 KiB
02_pair_2_17.txt AC 302 ms 22732 KiB
02_pair_2_18.txt AC 320 ms 22892 KiB
02_pair_2_19.txt AC 89 ms 5248 KiB
03_random_00.txt AC 480 ms 42640 KiB
03_random_01.txt AC 445 ms 42616 KiB
03_random_02.txt AC 462 ms 42856 KiB
03_random_03.txt AC 470 ms 42636 KiB
03_random_04.txt AC 473 ms 42708 KiB
04_m_eq_2_00.txt AC 31 ms 3516 KiB
04_m_eq_2_01.txt AC 32 ms 3492 KiB
04_m_eq_2_02.txt AC 33 ms 3432 KiB
04_m_eq_2_03.txt AC 31 ms 3604 KiB
04_m_eq_2_04.txt AC 34 ms 3492 KiB
05_m_eq_4_00.txt AC 33 ms 3624 KiB
05_m_eq_4_01.txt AC 29 ms 3628 KiB
05_m_eq_4_02.txt AC 33 ms 3496 KiB
05_m_eq_4_03.txt AC 32 ms 3624 KiB
05_m_eq_4_04.txt AC 28 ms 3624 KiB
05_m_eq_4_05.txt AC 36 ms 3428 KiB
05_m_eq_4_06.txt AC 33 ms 3492 KiB
05_m_eq_4_07.txt AC 33 ms 3460 KiB
05_m_eq_4_08.txt AC 33 ms 3516 KiB
05_m_eq_4_09.txt AC 32 ms 3600 KiB
06_corner_00.txt AC 326 ms 27688 KiB
06_corner_01.txt AC 292 ms 26924 KiB