結果
問題 | No.2823 PEX (Predecessing Excluded Value) Game |
ユーザー |
![]() |
提出日時 | 2023-09-03 06:32:34 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 1,751 ms / 2,000 ms |
コード長 | 932 bytes |
コンパイル時間 | 1,804 ms |
コンパイル使用メモリ | 130,340 KB |
実行使用メモリ | 26,584 KB |
最終ジャッジ日時 | 2024-07-27 21:23:50 |
合計ジャッジ時間 | 8,332 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 51 |
ソースコード
#include <cstdint> #include <numeric> #include <iostream> #include <valarray> #include <map> #include <ranges> using i64 = std::int64_t; void solve() { int n; std::cin >> n; std::valarray<std::pair<i64,i64>> lr(n); for(auto& [ l, r ] : lr) std::cin >> l >> r, --l; std::map<i64,i64> heaps; i64 blanks = 0; i64 prev_r = 0; for(const auto& [ l, r ] : lr) { blanks += l - prev_r; prev_r = r; heaps[blanks] += r - l; } std::cerr << blanks << " " << "\n"; for(const auto& [ k, v ] : heaps) std::cerr << k << ": " << v << "\n"; i64 grundy = 0; for(const auto& [ k, v ] : heaps) if(k%2) grundy ^= v; std::cerr << grundy << "\n"; std::cout << (grundy != 0 ? "First\n" : "Second\n"); return; } int main() { solve(); return 0; } __attribute__((constructor)) inline void fast_io() { std::ios::sync_with_stdio(false), std::cin.tie(nullptr); }