This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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;
int deleted = 0;
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);
++deleted;
}
else if (type==3)
{
cin >> l >> r >> k;
l = (l ^ (t * prevans));
r = (r ^ (t * prevans));
if (l > r) swap(l, r);
int ans = seg.size() - deleted;
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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |