#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
#include <queue>
#define int long long
using namespace std;
vector<pair<int,int> >seg;
void push(int p){
seg[p*2].first=min(seg[p].second, seg[p*2].first);
seg[p*2+1].first=min(seg[p].second, seg[p*2+1].first);
seg[p*2].second=min(seg[p].second, seg[p*2].second);
seg[p*2+1].second=min(seg[p].second, seg[p*2+1].second);
seg[p].second=1e9;
}
int find_max(int l, int r, int a, int b, int p){
if (l==a && r==b) return seg[p].first;
else if (l>b || r<a) return -1;
int m=(l+r)/2;
push(p);
int max1=find_max(l, m, a, min(m, b), p*2);
int max2=find_max(m+1, r, max(a, m+1), b, p*2+1);
seg[p].first=max(seg[p*2].first, seg[p*2+1].first);
return max(max1, max2);
}
void prop(int l, int r, int a, int b, int p, int x){
if (l==a && r==b){
seg[p].first=min(x, seg[p].first);
seg[p].second=min(x, seg[p].second);
return;
}else if (l>b || r<a) return;
push(p);
int m=(l+r)/2;
prop(l, m, a, min(m, b), p*2, x);
prop(m+1, r, max(m+1, a), b, p*2+1, x);
seg[p].first=max(seg[p*2].first, seg[p*2+1].first);
}
signed main(){
cin.tie(0);
ios::sync_with_stdio(false);
int n, m, q;
cin>>n>>m>>q;
priority_queue<pair<int,int> >cortines;
for (int i=0; i<m; i++){
int l, r; cin>>l>>r; l--; r--;
cortines.push(make_pair(l, r));
}
vector<pair<pair<int,int>, int> >query(q);
for (int i=0; i<q; i++){
cin>>query[i].first.first>>query[i].first.second;
query[i].first.first--; query[i].first.second--;
query[i].second=i;
}sort(query.begin(), query.end());
vector<bool>ans(q, false);
seg.assign(4*n, make_pair(1e9, 1e9));
for (int i=q-1; i>=0; i--){
int s=query[i].first.first, e=query[i].first.second;
while (!cortines.empty()){
if (cortines.top().first<s) break;
else{
int l=cortines.top().first;
int r=cortines.top().second;
prop(0, n-1, l, r, 1, r);
cortines.pop();
}
}
if (find_max(0, n-1, s, e, 1)<=e) ans[query[i].second]=true;
}
for (int i=0; i<q; i++){
if (ans[i]==true) cout<<"YES\n";
else cout<<"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... |