#include <bits/stdc++.h>
#define L(i,j,k) for(int i=(j);i<=(k);i++)
#define R(i,j,k) for(int i=(j);i>=(k);i--)
#define all(x) x.begin(),x.end()
#define sz(a) ((int)a.size())
#define pb push_back
using namespace std;
typedef long long ll;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n;cin>>n;
vector<int>a(n),b(n);
L(i,0,n-1)cin>>a[i];
L(i,0,n-1)cin>>b[i];
int q;cin>>q;
while(q--){
int l,r;cin>>l>>r;l--,r--;
vector<tuple<int,int,int>>ranges;
set<pair<int,int>>pending;
L(i,l,r){
ranges.pb({b[i],a[i],i});
pending.insert({b[i],i});
}
sort(all(ranges));
vector<bool>used(n,0);
bool possible=true;
int m=sz(ranges);
L(i,0,m-1){
auto [s,e,j]=ranges[i];
pair<int,int>erased={s,j};
bool change=false;
if(pending.count(erased)){
pending.erase(erased);
change=true;
}
auto it=pending.lower_bound({e+1,-1});
if(it==begin(pending)){
possible=false;
break;
}
it--;
// cout<<a[j]<<" "<<b[j]<<endl;
// cout<<"EMPAREJO CON"<<endl;
// cout<<a[it->second]<<" "<<b[it->second]<<endl;
pending.erase(it);
if(change)pending.insert(erased);
}
if(possible){
cout<<"Yes"<<endl;
}else{
cout<<"No"<<endl;
}
}
}