210602026-01-12 10:42:10vyrallBináris fa magassága (50 pont)python3Time limit exceeded 20/50601ms5280 KiB
import math

n, m = map(int, input().split())
last = 2**(n - 1)*[n - 1]
modified = [[], []]
out = []

def update(idx, new_v):
    if idx not in modified[0]:
        modified[0].append(idx)
        modified[1].append(new_v)
        old_v = 1
    else:
        old_v = modified[1][modified[0].index(idx)]
        modified[1][modified[0].index(idx)] = new_v
    cur_h = int(math.log2(idx)) + 1
    mn_idx = idx * 2 ** (n - cur_h) - 2 ** (n - 1)
    mx_idx = idx
    for _ in range(n - cur_h):
        mx_idx = 2 * mx_idx + 1
    mx_idx -= 2 ** (n - 1) - 1
    last[mn_idx: mx_idx] = [i + (new_v - old_v) for i in last[mn_idx: mx_idx]]

for _ in range(m):
    index, new_value = map(int, input().split())
    update(index, new_value)
    out.append(max(last))

for i in out:
    print(i)
SubtaskSumTestVerdictTimeMemory
base20/50
1Accepted0/016ms3136 KiB
2Time limit exceeded0/0583ms5152 KiB
3Accepted2/220ms3124 KiB
4Accepted2/220ms3112 KiB
5Accepted2/220ms3208 KiB
6Accepted2/221ms3096 KiB
7Accepted3/323ms3124 KiB
8Accepted3/325ms3124 KiB
9Accepted3/328ms3260 KiB
10Accepted3/328ms3296 KiB
11Time limit exceeded0/2600ms3380 KiB
12Time limit exceeded0/2600ms3380 KiB
13Time limit exceeded0/2600ms3452 KiB
14Time limit exceeded0/2588ms3460 KiB
15Time limit exceeded0/2589ms3476 KiB
16Time limit exceeded0/2601ms5280 KiB
17Time limit exceeded0/2600ms5084 KiB
18Time limit exceeded0/2583ms5208 KiB
19Time limit exceeded0/2579ms4936 KiB
20Time limit exceeded0/3600ms3380 KiB
21Time limit exceeded0/3600ms3504 KiB
22Time limit exceeded0/3583ms3348 KiB
23Time limit exceeded0/3587ms3636 KiB