214912026-01-13 10:37:34vyrallBináris fa magassága (50 pont)python3Time limit exceeded 40/50591ms6648 KiB
n, m = map(int, input().split())
tree = (2**n) * [0]
vals = (2**n) * [1]
out = []

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

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

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

for i in out:
    print(i)

SubtaskSumTestVerdictTimeMemory
base40/50
1Accepted0/016ms3312 KiB
2Accepted0/0439ms6416 KiB
3Accepted2/218ms3112 KiB
4Accepted2/218ms3124 KiB
5Accepted2/220ms3232 KiB
6Accepted2/219ms3124 KiB
7Accepted3/319ms3232 KiB
8Accepted3/320ms3124 KiB
9Accepted3/320ms3272 KiB
10Accepted3/319ms3264 KiB
11Time limit exceeded0/2588ms4884 KiB
12Time limit exceeded0/2589ms4884 KiB
13Time limit exceeded0/2591ms4876 KiB
14Time limit exceeded0/2579ms4628 KiB
15Time limit exceeded0/2577ms4672 KiB
16Accepted2/2439ms6420 KiB
17Accepted2/2441ms6648 KiB
18Accepted2/2446ms6420 KiB
19Accepted2/2441ms6436 KiB
20Accepted3/3474ms6424 KiB
21Accepted3/3469ms6420 KiB
22Accepted3/3474ms6420 KiB
23Accepted3/3477ms6420 KiB