#include <bits/stdc++.h>
using namespace std;
#define vi vector<int>
#define pi pair<int, int>
#define ppi pair<pair<int, int>, int>
void solve() {
int n, m, q;
cin >> n >> m >> q;
vector<pair<int, int>> seg;
for (int i = 0; i < m; ++i) {
int a, b;
cin >> a >> b;
--a; --b;
seg.emplace_back(a, b);
}
sort(seg.begin(), seg.end());
vector<int> mn(n, INT32_MAX);
vector<ppi> queries;
for (int i = 0; i < q; ++i) {
int a, b;
cin >> a >> b;
--a; --b;
queries.push_back({{a, b}, i});
}
sort(queries.begin(), queries.end());
vector<string> res(q);
while (!queries.empty()) {
pi p;
int a, b, idx;
tie(p, idx) = queries.back();
tie(a, b) = p;
queries.pop_back();
while (!seg.empty() && seg.back().first >= a) {
int aa, bb;
tie(aa, bb) = seg.back();
seg.pop_back();
for (int j = aa; j <= bb; ++j) {
mn[j] = min(mn[j], bb);
}
}
int mx = numeric_limits<int>::min();
for (int j = a; j <= b; ++j) {
mx = max(mx, mn[j]);
}
res[idx] = (mx <= b) ? "YES" : "NO";
}
for (const auto& ans : res) {
cout << ans << '\n';
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
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... |