from collections import deque
from sys import setrecursionlimit
def solve():
n = int(input())
a = list(map(int, input().split(" ")))
b = list(map(int, input().split(" ")))
def query(l: int, r: int):
pass
c = [0] * n
left = [0] * n # if we take it as left boundary, is it excluded
right = [0] * n
for i in range(n):
r = True
if i != 0:
if a[i-1] < b[i]: right[i] = 1
else: r = False
if i != n-1:
if a[i] < b[i+1]: left[i] = 1
else: r = False
c[i] = r
prfx = [0] * n
prfx[0] = c[0]
for i in range(1, n):
prfx[i] = prfx[i-1] + c[i]
def getPrfx(l: int, r: int):
if l > r: return 0
left = 0 if l == 0 else prfx[l-1]
right = prfx[r]
return right - left
q = int(input())
for _ in range(q):
l, r = map(int, input().split(" "))
l -= 1
r -= 1
# print(p, left[l], right[r])
res = getPrfx(l+1, r-1) + left[l] + right[r]
print("Yes" if not res else "No")
solve()
Compilation message (stdout)
Compiling 'Main.py'...
=======
adding: __main__.pyc (deflated 40%)
=======
# | 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... |