Submission #1200456

#TimeUsernameProblemLanguageResultExecution timeMemory
1200456AblablaGift Exchange (JOI24_ho_t4)C++20
50 / 100
2595 ms2908 KiB
#include <bits/stdc++.h> using namespace std; typedef pair<int, int> pii; vector<pii> a, b; bool csere(int ind){ if(ind < 0 || a.size() <= ind + 1){ return 0; } // volt: // a[ind] -> b[ind] // a[ind + 1] -> b[ind + 1] // lesz: // a[ind + 1] -> b[ind] // a[ind] -> b[ind + 1] if(a[ind] >= b[ind + 1] && a[ind + 1] >= b[ind]){ swap(a[ind], a[ind + 1]); return 1; } return 0; } int main() { int n; cin >> n; vector<int> ad(n), ker(n); for(int &x : ad){ cin >> x; } for(int &x : ker){ cin >> x; } int q; cin >> q; while(q--){ int l, r; cin >> l >> r; l--; r--; a.clear(); b.clear(); for(int i = l; i <= r; i++){ a.push_back({ad[i], i}); b.push_back({ker[i], i}); } sort(a.begin(), a.end(), greater<pii>()); sort(b.begin(), b.end(), greater<pii>()); /*for(int i = 0; i < a.size(); i++){ cout << a[i].first << " " << a[i].second << " : " << b[i].first << " " << b[i].second << "\n"; }*/ bool jo = 1; for(int i = 0; i < a.size(); i++){ if(a[i].second == b[i].second){ if(!csere(i - 1)){ if(!csere(i)){ jo = 0; break; } } } } if(jo){ 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...