211682026-01-12 16:22:59vyrallBináris fa magassága (50 pont)pypy3Time limit exceeded 20/50602ms28396 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/045ms19592 KiB
2Time limit exceeded0/0588ms26052 KiB
3Accepted2/282ms22084 KiB
4Accepted2/279ms21752 KiB
5Accepted2/287ms21752 KiB
6Accepted2/287ms21988 KiB
7Accepted3/383ms22036 KiB
8Accepted3/394ms22000 KiB
9Accepted3/390ms21988 KiB
10Accepted3/383ms22160 KiB
11Time limit exceeded0/2591ms24296 KiB
12Time limit exceeded0/2583ms24296 KiB
13Time limit exceeded0/2601ms24488 KiB
14Time limit exceeded0/2584ms24296 KiB
15Time limit exceeded0/2592ms24296 KiB
16Time limit exceeded0/2602ms28396 KiB
17Time limit exceeded0/2586ms28136 KiB
18Time limit exceeded0/2589ms27368 KiB
19Time limit exceeded0/2591ms27112 KiB
20Time limit exceeded0/3588ms24804 KiB
21Time limit exceeded0/3602ms24548 KiB
22Time limit exceeded0/3584ms24548 KiB
23Time limit exceeded0/3580ms24252 KiB