結果
| 問題 |
No.2059 Odd Move Nim
|
| コンテスト | |
| ユーザー |
shauuebbit
|
| 提出日時 | 2022-09-05 22:55:22 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 174 ms / 2,000 ms |
| コード長 | 1,783 bytes |
| コンパイル時間 | 2,089 ms |
| コンパイル使用メモリ | 193,184 KB |
| 最終ジャッジ日時 | 2025-02-07 02:57:37 |
|
ジャッジサーバーID (参考情報) |
judge3 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 21 |
ソースコード
#include <bits/stdc++.h>
template <typename T = long long, typename U = int>
class BinomialCoefficients {
int max;
U mod;
T *factorial;
T *factorial_inverse;
T *inverse;
public:
T get(int n, int k) {
if (n < 0 || k < 0 || k > n)
return 0;
else
return factorial[n] * (factorial_inverse[k] * factorial_inverse[n - k] % mod) % mod;
}
BinomialCoefficients(int max, U mod) : max(max), mod(mod) {
factorial = new T[max + 1];
factorial_inverse = new T[max + 1];
inverse = new T[max + 1];
factorial[0] = factorial[1] = 1;
factorial_inverse[0] = factorial_inverse[1] = 1;
inverse[1] = 1;
for (int k = 2; k <= max; k++) {
factorial[k] = factorial[k - 1] * k % mod;
inverse[k] = mod - inverse[mod % k] * (mod / k) % mod;
factorial_inverse[k] = factorial_inverse[k - 1] * inverse[k] % mod;
}
}
~BinomialCoefficients() {
delete[] factorial;
delete[] factorial_inverse;
delete[] inverse;
}
};
const int MOD = 998244353;
template <typename T, typename U, typename V>
constexpr T power(T b, U e, V mod) {
if (b >= mod) b %= mod;
T ret = 1;
while (e) {
if (e & 1) {
ret *= b;
ret %= mod;
}
b *= b;
b %= mod;
e >>= 1;
}
return ret;
}
template <typename T, typename U>
constexpr T power(T b, U e) {
return power(b, e, MOD);
}
using namespace std;
int main() {
int N;
cin >> N;
vector<int> A(N, 0);
int x = 0;
for (int i = 0; i < N; i++) {
cin >> A[i];
if (i & 1) x ^= A[i];
}
if (x) puts("Alice");
else puts("Bob");
return 0;
}
shauuebbit