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 <bits/stdc++.h>
using namespace std;
template<typename T>
void out(T x) { cout << x << endl; exit(0); }
#define watch(x) cout << (#x) << " is " << (x) << endl
using ll = long long;
const int maxn = 1e6 + 5;
int n,t;
multiset<pair<int,int>> ms;
int id;
pair<int,int> a[maxn];
int main() {
ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
cin>>n>>t;
int lastans=0;
while (n--) {
int op;
cin>>op;
if (op==1) {
++id;
cin>>a[id].first>>a[id].second;
ms.insert({a[id].first,a[id].second});
} else if (op==2) {
int i;
cin>>i;
ms.erase(ms.find({a[i].first,a[i].second}));
} else if (op==3) {
int l,r,k;
cin>>l>>r>>k;
l=l^(t*lastans);
r=r^(t*lastans);
int res=0;
for (auto p: ms) {
int x=max(l,p.first);
int y=min(r,p.second);
if (y-x+1>=k) res++;
}
cout<<res<<"\n";
lastans=res;
} else assert(false);
}
return 0;
}
# | 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... |