結果
問題 | No.230 Splarraay スプラレェーイ |
ユーザー |
![]() |
提出日時 | 2021-03-03 22:50:45 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 852 bytes |
コンパイル時間 | 2,674 ms |
コンパイル使用メモリ | 195,216 KB |
最終ジャッジ日時 | 2025-01-19 09:48:30 |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 15 WA * 2 |
ソースコード
#include <bits/stdc++.h> using namespace std; int main() { int N, Q; cin >> N >> Q; const int LEN = 100010; bitset<LEN> B[2], mask; int ans[2] = {}; while (Q--) { int x, l, r; cin >> x >> l >> r; r++; mask.reset(); mask.flip(); mask >>= LEN - (r - l); mask <<= l; if (x == 0) { int cnt[2]; cnt[0] = (mask & B[0]).count(); cnt[1] = (mask & B[1]).count(); if (cnt[0] > cnt[1]) ans[0] += cnt[0]; else if (cnt[1] > cnt[0]) ans[1] += cnt[1]; } else { x--; B[x] |= mask; mask.flip(); B[1 - x] &= mask; } } ans[0] += B[0].count(); ans[1] += B[1].count(); cout << ans[0] << " " << ans[1] << endl; }