#include <bits/stdc++.h>
#define pii pair<int, int>
using namespace std;
const int N = 1e6 + 5;
struct node{
int x, lz;
node(){
x = lz = -1;
}
};
node unite(const node &x, const node &y){
node ans;
ans.x = min(x.x, y.x);
return ans;
}
struct SegmentTree{
vector<node> seg; int n;
void init(int _n){
n = _n; seg.resize(4 * n + 5);
}
void apply(int id, int x){
seg[id].x = max(seg[id].x, x);
seg[id].lz = max(seg[id].lz, x);
}
void down(int id){
int &t = seg[id].lz;
apply(id * 2, t), apply(id * 2 + 1, t);
t = -1;
}
void upd(int id, int tl, int tr, int l, int r, int x){
if(r < tl || tr < l) return;
if(l <= tl && tr <= r){
apply(id, x); return;
}
int mid = (tl + tr) / 2; down(id);
upd(id * 2, tl, mid, l, r, x), upd(id * 2 + 1, mid + 1, tr, l, r, x);
seg[id] = unite(seg[id * 2], seg[id * 2 + 1]);
}
int query(int id, int tl, int tr, int l, int r){
if(r < tl || tr < l) return N;
if(l <= tl && tr <= r) return seg[id].x;
int mid = (tl + tr) / 2; down(id);
return min(query(id * 2, tl, mid, l, r), query(id * 2 + 1, mid + 1, tr, l, r));
}
};
int n, m, q;
int l[N], r[N], s[N], e[N];
bool ans[N];
vector<int> upd[N];
vector<pii> qq[N];
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> n >> m >> q;
for(int i = 1; i <= m; i++){
cin >> l[i] >> r[i];
l[i]--;
upd[r[i]].push_back(l[i]);
}
for(int i = 1; i <= q; i++){
cin >> s[i] >> e[i];
s[i]--;
qq[e[i]].push_back({s[i], i});
}
SegmentTree a; a.init(n + 1);
for(int i = 1; i <= n; i++){
for(int x : upd[i]) a.upd(1, 0, n, x, i, x);
for(pii qu : qq[i]){
if(a.query(1, 0, n, qu.first, i) == qu.first) ans[qu.second] = 1;
}
}
for(int i = 1; i <= q; i++) cout << (ans[i] ? "YES" : "NO") << "\n";
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... |