ამოხსნების სტატუსი

ამ გვერდზე თქვენ იხილავთ გაგზავნილი ამოხსნების სტატუსს.


გაგზავნის თარიღი: 07.06.2021 13:52:03

ამოცანა: ლუწკენტობა ინტერვალზე

მომხმარებელი: ditotet

ვერდიქტი: ამოუხსნელი

შეფასება: 0 ქულა







class Node:
    parent = None
    left = None
    right = None
    start = -1
    end = -1
    val = 0

# Build segment tree
def build_seg_tree(arr, start, end):
    root = Node()
    root.start = start
    root.end = end

    middle = (start + end) // 2

    if start >= end:
        return root
    elif start + 1 == end:
        root.val = arr[start] % 2
        return root
        
    root.left = build_seg_tree(arr, start, middle)
    root.right = build_seg_tree(arr, middle, end)
    root.val = root.left.val + root.right.val
    return root

def update_seg_tree(root, index, val):
    if root.start == index and root.end == index + 1:
        root.val = val
        return val

    if index < root.start or index >= root.end:
        return -1

    update_seg_tree(root.left, index, val)
    update_seg_tree(root.right, index, val)

    root.val = root.left.val + root.right.val

def query_seg_tree(root, start, end):
    if root.start >= start and root.end <= end:
        return root.val
    
    if root.start >= end or root.end <= start:
        return 0

    return query_seg_tree(root.left, start, end) + query_seg_tree(root.right, start, end)



def print_tree(root):
    if root == None:
        return
    print(root.val)
    print_tree(root.left)
    print_tree(root.right)

n = int(input())
x = list(map(int, input().split())) 
q = int(input())

root = build_seg_tree(x, 0, len(x))

while q > 0:
    q -= 1
    a, b, c = map(int, input().split())
    

    if a == 0:
        diff = (x[b - 1] % 2) - (c % 2)
        x[b - 1] = c
        if diff == 1:
            update_seg_tree(root, b - 1, 0)
        elif diff == -1:
            update_seg_tree(root, b - 1, 1)
    elif a == 1:
        print((c - b + 1) - query_seg_tree(root, b - 1, c), end=' ')
    else:
        print(query_seg_tree(root, b - 1, c), end=' ')
sh: 1: cannot open PROB_python3_UID2562PID280_3bcec7_input.txt: No such file