제출 #1284958

#제출 시각아이디문제언어결과실행 시간메모리
1284958Faisal_SaqibGift Exchange (JOI24_ho_t4)C++20
50 / 100
2594 ms8312 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long const int N=1e5+10; int a[N],b[N],sz=0; pair<int,int> tmp1[N],tmp[N]; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); // freopen("input.txt", "r", stdin); // freopen("output.txt", "w", stdout); ll n; cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; } for(int i=1;i<=n;i++) { cin>>b[i]; } ll q; cin>>q; while(q--) { ll l,r; cin>>l>>r; sz=0; set<pair<ll,ll>> tep; set<ll> rem; for(int i=l;i<=r;i++) { tep.insert({a[i],i}); // tmp[++sz]=a[i]; tmp1[++sz]={b[i],i}; } // sort(tmp+1,tmp+sz+1); sort(tmp1+1,tmp1+sz+1); // int cur=2; bool pos=1; for(int i=sz;i>=1;i--) { auto it=tep.lower_bound({tmp1[i].first,-1}); if(it!=end(tep) and it->second==tmp1[i].second) { it++; } // auto it1= if(it==end(tep)) { auto it1=rem.lower_bound(tmp1[i].first); if(it1!=end(rem)) { rem.erase(it1); continue; } pos=0; break; } int j=tmp1[i].second; if(tep.find({a[j],j})!=tep.end()) { tep.erase({a[j],j}); rem.insert(a[j]); } tep.erase(it); } // for(int i=1;i<=sz;i++) // { // } cout<<(pos?"Yes":"No")<<endl; } } // 5 3 6 // 1 2 4
#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...