제출 #1199755

#제출 시각아이디문제언어결과실행 시간메모리
1199755ofozCurtains (NOI23_curtains)C++20
24 / 100
1595 ms30788 KiB
#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 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...