214152026-01-13 07:51:55vyrallBináris fa magassága (50 pont)python3Wrong answer 0/50600ms6692 KiB
n, m = map(int, input().split())
tree = (2**n - 1) * [0]
vals = (2**n - 1) * [1]
out = []

for i in range(2**(n-1) - 2, -1, -1):
    tree[i] = max(tree[2*i+1], tree[2*i+2]) + vals[i]

def update(idx, new_val):
    vals[idx-1] = new_val
    j = idx
    while j >= 0:
        if j <= 2**(n-1) - 1:
            if tree[2*j-1] >= tree[2*j]:
                tree[j - 1] = tree[2*j-1] + max(vals[2*j-2], vals[2*j-1])
            else:
                tree[j - 1] = tree[2 * j] + vals[2 * j - 1]
        else:
            tree[j - 1] = 0
        j = j // 2 if j > 1 else -1
    out.append(tree[0])

for _ in range(m):
    index, val = map(int, input().split())
    update(index, val)

for i in out:
    print(i)
SubtaskSumTestVerdictTimeMemory
base0/50
1Wrong answer0/016ms3132 KiB
2Wrong answer0/0430ms6668 KiB
3Wrong answer0/219ms3124 KiB
4Wrong answer0/218ms3116 KiB
5Wrong answer0/219ms3108 KiB
6Wrong answer0/219ms3152 KiB
7Wrong answer0/320ms3164 KiB
8Wrong answer0/321ms3384 KiB
9Wrong answer0/320ms3128 KiB
10Wrong answer0/320ms3124 KiB
11Time limit exceeded0/2600ms4720 KiB
12Time limit exceeded0/2600ms4992 KiB
13Time limit exceeded0/2600ms5240 KiB
14Time limit exceeded0/2584ms4644 KiB
15Time limit exceeded0/2580ms4628 KiB
16Wrong answer0/2432ms6692 KiB
17Wrong answer0/2433ms6692 KiB
18Wrong answer0/2430ms6692 KiB
19Wrong answer0/2435ms6492 KiB
20Wrong answer0/3467ms6468 KiB
21Wrong answer0/3467ms6380 KiB
22Wrong answer0/3467ms6436 KiB
23Wrong answer0/3462ms6440 KiB