제출 #1283409

#제출 시각아이디문제언어결과실행 시간메모리
1283409soabCurtains (NOI23_curtains)C++20
9 / 100
1594 ms7020 KiB
// soab #include <bits/stdc++.h> using namespace std; #define int long long #define nl '\n' #define fi first #define se second void io() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); } const int MAXN = 3 * 1e5 + 1; int n, m, q; vector<pair<int,int>> ctain(MAXN); bool check(int l, int r) { int i = 0; while(i < m && ctain[i].fi < l) i++; if(i == m || ctain[i].fi != l) return 0; int cur = l - 1; for(i; i < m; i++) { if(ctain[i].fi > cur + 1) return 0; if(ctain[i].se <= r) { cur = max(cur, ctain[i].se); } if(cur == r) return 1; } return cur == r; } void sub2() { sort(ctain.begin(), ctain.begin() + m); for(int i = 0; i < q; i++) { int l, r; cin >> l >> r; cout << (check(l, r)? "YES" : "NO") << nl; } } void sub4() { sort(ctain.begin(), ctain.begin() + m); vector<bool> ans(n + 1, 0); int cur = 0; for(int i = 0; i < n; i++) { if(ctain[i].fi <= cur + 1) { ans[ctain[i].se] = 1; cur = max(cur, ctain[i].se); } else { break; } } while(q--) { int l, r; cin >> l >> r; cout << (ans[r]? "YES" : "NO") << nl; } } signed main() { io(); bool subtask4 = 1; cin >> n >> m >> q; for(int i = 0; i < m; i++) { cin >> ctain[i].fi >> ctain[i].se; subtask4 &= ctain[i].fi == 1; } if(subtask4) { sub4(); } else { sub2(); } 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...