Sort by

recency

|

995 Discussions

|

  • + 0 comments

    from collections import deque

    T = int(input()) for i in range(T): top_of_pile = float('inf') n = int(input()) D = deque(map(int,input().split())) s = True for j in range(n): if D[-1] >= D[0]: cc = D.pop() else: cc = D.popleft()

        if cc <= top_of_pile:
            top_of_pile = cc
        else :
            print('No')
            s = False
            break
    
    if s:
        print ('Yes')
    
  • + 0 comments

    T = int(input())

    res=''

    for _ in range(T):

    n = int(input())
    side=list(map(int,input().split()))
    for i in range(round(len(side)/2)):
        if side[i]>=side[-i-1] or side[-i-1]>=side[-i-2]:
            res='Yes'
        else:
            res='No'
            break
    print(res)
    
  • + 0 comments

    T = int(input())

    for _ in range(T):

    list_length = int(input())
    
    list_a = list(map(int, input().split()))
    
    stack = []
    for _ in range(list_length):
        if list_a[0] > list_a[-1]:
            stack.append(list_a[0])
            list_a.pop(0)
        else:
            stack.append(list_a[-1])
            list_a.pop(-1)
    
    if stack == sorted(stack, reverse=True):
        print("Yes")
    else:
        print("No")
    
  • + 1 comment
    def solvetc():
        block_count = int(input())
        lengths = list(map(int, input().split(" ")))
        if (len(lengths) != block_count):
            return "No"
            
        left_pointer = 0
        right_pointer = block_count - 1
        top_of_pile = -1
        
        while(right_pointer - left_pointer > 0):
            #print("left_pointer = " + str(left_pointer) + " and right_pointer = " + str(right_pointer))
            candidate = -1
            if(lengths[left_pointer] > lengths[right_pointer]):
                candidate = lengths[left_pointer]
                left_pointer += 1
            else:
                candidate = lengths[right_pointer]
                right_pointer -= 1
            
            #print("candidate = " + str(candidate) + " and top_of_pile = " + str(top_of_pile))
            
            if(top_of_pile == -1): 
                top_of_pile = candidate
                continue
            
            if (candidate > top_of_pile):
                return "No"
            else:
                top_of_pile = candidate
                
        #print("left_pointer = " + str(left_pointer) + " and right_pointer = " + str(right_pointer))
        return "Yes"
    
    
    if __name__ == '__main__':
        tc = int(input())
        responses = []
        for _ in range(tc):
            responses.append(solvetc())
        for r in responses:
            print(r)
    
  • + 0 comments

    t = int(input())

    for test_case in range(t):

    block_size = int(input())
    blocks = list(map(int, input().split()))
    top = float("inf")
    
    left = 0
    right = block_size - 1
    
    while True:
    
        if left > right:
            print("Yes")
            break
    
        if blocks[left] > blocks[right]:
            if blocks[left] > top:
                print("No")
                break
            top = blocks[left]
            left += 1
        else:
            if blocks[right] > top:
                print("No")
                break
            top = blocks[right]
            right -= 1