ログインしてください。
提出 #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 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| 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 |