Submission #1204145

#TimeUsernameProblemLanguageResultExecution timeMemory
1204145ofozGift Exchange (JOI24_ho_t4)Pypy 3
0 / 100
137 ms48812 KiB
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 = True

        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
        p = getPrfx(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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...