#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll md = 1e9+7;
void fxd(int i,int j,int l,int r,ll ara[],ll seg[],ll dp[],int node){
if(i>r||j<l)return;
if(i==j){
seg[node]=ara[i];
dp[i]=1;
return;
}
int mid=(i+j)/2;
fxd(i,mid,l,r,ara,seg,dp,node*2);
fxd(mid+1,j,l,r,ara,seg,dp,node*2+1);
if(!dp[node*2]||!dp[node*2+1]||seg[node*2]>seg[node*2+1])dp[node]=0;
seg[node]=max(seg[node*2],seg[node*2+1]);
}
int fnd(int i,int j,int l,int r,ll seg[],ll dp[],ll node){
if(i>r||j<l)return 1;
if(i>=l&&j<=r)return dp[node];
int mid=(i+j)/2;
int x=fnd(i,mid,l,r,seg,dp,node*2);
int y=fnd(mid+1,j,l,r,seg,dp,node*2+1);
if(!x||!y)return 0;
else return 1;
}
void solve() {
int n;
cin>>n;
ll ara[n+1];
for(int i=1;i<=n;i++)cin>>ara[i];
ll seg[4*n+10];
ll dp[4*n+10];
for(int i=1;i<4*n+10;i++)dp[i]=1;
fxd(1,n,1,n,ara,seg,dp,1);
int q;
cin>>q;
while(q--){
int a;
cin>>a;
if(a==1){
int i;ll x;
cin>>i>>x;
ara[i]=x;
fxd(1,n,i,i,ara,seg,dp,1);
}
else{
int l,r;
cin>>l>>r;
int ans=fnd(1,n,l,r,seg,dp,1);
if(ans)cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int T;
T=1;//cin >> T;
while (T--) {
solve();
}
return 0;
}