Submission #1162291

#TimeUsernameProblemLanguageResultExecution timeMemory
1162291dubabubaGift Exchange (JOI24_ho_t4)C++20
8 / 100
260 ms2336 KiB
#include <bits/stdc++.h> using namespace std; const int mxn = 1e6 + 10; int n, a[mxn], b[mxn]; int st[mxn]; bool solve(int l, int r) { // cout << "solve: " << l << ' ' << r << endl; if(l == r) return 0; if(st[r] <= l) return 1; if(st[r] == r) return 0; return solve(l, st[r] - 1); } int main() { cin >> n; a[n + 1] = n + 1; for(int i = 1; i <= n; i++) { cin >> a[i]; assert(a[i - 1] < a[i]); } for(int i = 1; i <= n; i++) { cin >> b[i]; st[i] = lower_bound(a, a + n + 1, b[i]) - a; assert(st[i]); assert(st[i] <= i); } for(int i = 1; i <= n; i++) st[i] = st[st[i]]; int q; cin >> q; while(q--) { int l, r; cin >> l >> r; if(solve(l, r)) cout << "Yes\n"; else cout << "No\n"; } 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...