#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];
bool recur(int l,int r)
{
if(l==r)
return 0;
bool ans=a[tmp1[l].second]>tmp1[r].first;
for(int j=l;j<r and !ans;j++)
{
if(recur(l,j) and recur(j+1,r))
{
return 1;
}
}
return ans;
}
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;
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=(a[tmp1[1].second]>tmp1[sz].first);
// for(int i=sz-2;i>=2;i--)
// {
// pos|=(a[tmp1[1].second]>tmp1[i].first and a[tmp1[i+1].second]>tmp1[sz].first);
// }
cout<<(recur(1,sz)?"Yes":"No")<<endl;
}
}
// 5 3 6
// 1 2 4
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |