Submission #225693

#TimeUsernameProblemLanguageResultExecution timeMemory
225693emil_physmathSegments (IZhO18_segments)C++17
7 / 100
5089 ms3560 KiB
#include <iostream> #include <stdio.h> #include <queue> #include <vector> #include <set> using namespace std; int main() { int n, t; cin >> n >> t; int prevans = 0; vector<pair<int, int> > seg; while (n--) { int type, l, r, k, id; cin >> type; if (type == 1) { cin >> l >> r; l = (l ^ (t * prevans)); r = (r ^ (t * prevans)); if (l > r) swap(l, r); seg.push_back(make_pair(l, r)); } else if (type == 2) { cin >> id; seg[id - 1] = make_pair(-1, -1); } else if (type==3) { cin >> l >> r >> k; l = (l ^ (t * prevans)); r = (r ^ (t * prevans)); if (l > r) swap(l, r); int ans = 0; for (auto p: seg) if (p.first != -1) ++ans; for (auto p: seg) if (p.first != -1 && p.second - p.first < k - 1) --ans; for (auto p: seg) if (p.first != -1 && p.second - p.first >= k - 1 && p.second - l < k - 1) --ans; for (auto p: seg) if (p.first != -1 && p.second - p.first >= k - 1 && r - p.first < k - 1) --ans; cout << ans << '\n'; #ifdef MANSON cout << flush; #endif // MANSON prevans = ans; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...