Submission #1153682

#TimeUsernameProblemLanguageResultExecution timeMemory
1153682irmuunGift Exchange (JOI24_ho_t4)C++20
50 / 100
2593 ms3400 KiB
#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define pb push_back
#define ff first
#define ss second
#define all(s) s.begin(),s.end()
#define rall(s) s.rbegin(),s.rend()

int main(){
    ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    ll n;
    cin>>n;
    ll a[n+5],b[n+5];
    for(ll i=1;i<=n;i++){
        cin>>a[i];
    }
    for(ll i=1;i<=n;i++){
        cin>>b[i];
    }
    ll q;
    cin>>q;
    while(q--){
        ll l,r;
        cin>>l>>r;
        ll m=r-l+1;
        pair<ll,ll>pr[m+5];
        for(ll i=1;i<=m;i++){
            pr[i]={b[(l-1)+i],a[(l-1)+i]};
        }
        sort(pr+1,pr+m+1);
        bool ok=true;
        for(ll i=1;i<=m;){
            ll R=i,mx=pr[i].ss;
            while(R<m&&pr[R+1].ff<mx){
                R++;
                mx=max(mx,pr[R].ss);
            }
            if(R==i){
                ok=false;
            }
            i=R+1;
        }
        cout<<(ok?"Yes\n":"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...