Submission #1150679

#TimeUsernameProblemLanguageResultExecution timeMemory
1150679alir3za_zar3Gift Exchange (JOI24_ho_t4)C++20
50 / 100
2591 ms18124 KiB
// Alir3za.Zar3 -> Shiraz , Iran #include <bits/stdc++.h> using namespace std; #define int long long signed main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; cin >> n; int a[n+1] , b[n+1]; for (int i=1; i<=n; i++) cin >> a[i]; for (int i=1; i<=n; i++) cin >> b[i]; int q; cin >> q; while (q--) { int l,r; cin >> l >> r; set<pair<int,int>> A,B; for (int i=l; i<=r; i++) { A.insert( { a[i] , i } ); B.insert( { b[i] , i } ); } bool mrk = true; vector<pair<int,int>> op; while (!A.empty()) { auto [x , idx] = *A.begin(); auto [y , idy] = *B.begin(); A.erase(A.begin()); B.erase(B.begin()); if (x < y) { mrk = false; break; } if (idx == idy) { if (B.empty()) { if (op.empty()) { mrk = false; break; } auto [v , u] = op.back(); if (v >= y) { op.push_back( { x , u } ); continue; } else { mrk = false; break; } } if (!op.empty()) { auto [v , u] = op.back(); if (v >= y) { op.push_back( { x , u } ); continue; } } auto [z , idz] = *B.begin(); if (x < z) { mrk = false; break; } B.erase(B.begin()); B.insert({y,idy}); } else { op.push_back({ x , y }); } } if (mrk) cout << "Yes\n"; else cout << "No\n"; } }
#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...