from atcoder.segtree import SegTree N=int(input()) A=list(map(int,input().split())) Q=int(input()) cnt=[0]*(N+1) for a in A: cnt[a]+=1 def op(x,y): return min(x,y) INF=10**18 seg=SegTree(op,INF,cnt) ans=[] for _ in range(Q): l,r,L,R=map(int,input().split()) if max(l,L)>min(r,R): mn=seg.prod(l,r+1) MN=seg.prod(L,R+1) if mn>=1 and MN>=1: ans.append('Yes') else: ans.append('No') continue if l>L: l,r,L,R=L,R,l,r if R=1 and mid>=2 and right>=1: ans.append('Yes') else: ans.append('No') else: left=seg.prod(l,L) mid=seg.prod(L,r+1) right=seg.prod(r+1,R+1) if left>=1 and mid>=2 and right>=1: ans.append('Yes') else: ans.append('No') import sys sys.stdout.write('\n'.join(map(str,ans))+'\n')