Submission #1147432

#TimeUsernameProblemLanguageResultExecution timeMemory
1147432koukirocksGift Exchange (JOI24_ho_t4)C++20
8 / 100
30 ms3144 KiB
#include <bits/stdc++.h>
#define F first
#define S second
#define speed ios_base::sync_with_stdio(0);cin.tie(0)
#define all(x) x.begin()+1, x.end()

using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;

template<class T>
using vvector = vector<vector<T>>;

const ll oo = 0x3f3f3f3f3f3f3f3f;
const ll INF = 0x3f3f3f3f;

int main() {
    speed;
    int n;
    cin>>n;
    vector<pii> a(n+1),b(n+1);
    bool flag=false;
    vector<int> pre(n+1);
    for (int i=1;i<=n;i++) {
        cin>>a[i].F;
        a[i].S=i;
    }
    for (int i=1;i<=n;i++) {
        cin>>b[i].F;
        if (b[i].F==2*n-1) flag=true;
        b[i].S=i;
        if (i==1) continue;
    }
    vector<bool> lft(n+1),rt(n+1);
    for (int i=1;i<=n;i++) {
        if (i==1 or a[i-1].F<b[i].F) lft[i]=true;
        if ((i==n or a[i].F<b[i+1].F)) rt[i]=true;
        pre[i]=pre[i-1]+(lft[i] and rt[i]);
    }
    int q;
    cin>>q;
    while (q--) {
        int l,r;
        cin>>l>>r;
        if (lft[r] or rt[l]) cout<<"No\n";
        else if (pre[r]-pre[l-1]) cout<<"No\n";
        else cout<<"Yes\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...