210662026-01-12 10:52:34vyrallBináris fa magassága (50 pont)python3Futási hiba 0/5018ms3636 KiB
import math

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

def update(idx, new_v, mx_var):
    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]]
    mx_var = max(last[mn_idx: mx_idx], mx_var)
    return mx_var

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

for elem in out:
    print(elem)
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Futási hiba0/017ms2996 KiB
2Futási hiba0/017ms3376 KiB
3Futási hiba0/217ms3124 KiB
4Futási hiba0/216ms3112 KiB
5Futási hiba0/217ms3124 KiB
6Futási hiba0/217ms3320 KiB
7Futási hiba0/317ms3320 KiB
8Futási hiba0/317ms3116 KiB
9Futási hiba0/317ms3084 KiB
10Futási hiba0/317ms3136 KiB
11Futási hiba0/217ms3316 KiB
12Futási hiba0/217ms3260 KiB
13Futási hiba0/217ms3380 KiB
14Futási hiba0/217ms3396 KiB
15Futási hiba0/217ms3576 KiB
16Futási hiba0/217ms3324 KiB
17Futási hiba0/218ms3636 KiB
18Futási hiba0/217ms3576 KiB
19Futási hiba0/217ms3564 KiB
20Futási hiba0/317ms3568 KiB
21Futási hiba0/317ms3380 KiB
22Futási hiba0/317ms3220 KiB
23Futási hiba0/317ms3380 KiB