제출 #1116943

#제출 시각아이디문제언어결과실행 시간메모리
1116943vjudge1Segments (IZhO18_segments)C++17
7 / 100
5063 ms12104 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pb push_back #define sz(x) x.size() #define F first #define S second #define nl '\n' const int N = 2e5 + 1; int q, t, lans, id1; multiset< pair<int, int> >s; map<int, pair<int, int>>mp; signed main() { // freopen("input.txt", "r", stdin); // freopen("output.txt", "w", stdout); ios_base::sync_with_stdio(0); cin.tie(0); cin >>q >>t; while( q-- ) { int type, l, r, k, id; cin >>type; if( type == 1 ) { cin >>l >>r; l = (l ^ (t * lans)); r = (r ^ (t * lans)); if( l > r ) swap(l, r); ++id1; mp[id1] = {l, r}; s.insert({l, r}); continue; } else if( type == 2 ) { cin >>id; l = mp[id].F; r = mp[id].S; s.erase(s.find({l, r})); continue; } else { cin >>l >>r >>k; l = (l ^ (t * lans)); r = (r ^ (t * lans)); if( l > r ) swap(l, r); int res = 0; for( auto [l1, r1]: s ) { if( l1 > r || l > r1 ) continue; int l2 = max(l, l1); int r2 = min(r, r1); res += (r2 - l2 + 1 >= k); } cout <<res <<nl; lans = res; continue; } } }
#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...