210602026-01-12 10:42:10vyrallBináris fa magassága (50 pont)python3Időlimit túllépés 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)
RészfeladatÖsszpontTesztVerdiktIdőMemória
base20/50
1Elfogadva0/016ms3136 KiB
2Időlimit túllépés0/0583ms5152 KiB
3Elfogadva2/220ms3124 KiB
4Elfogadva2/220ms3112 KiB
5Elfogadva2/220ms3208 KiB
6Elfogadva2/221ms3096 KiB
7Elfogadva3/323ms3124 KiB
8Elfogadva3/325ms3124 KiB
9Elfogadva3/328ms3260 KiB
10Elfogadva3/328ms3296 KiB
11Időlimit túllépés0/2600ms3380 KiB
12Időlimit túllépés0/2600ms3380 KiB
13Időlimit túllépés0/2600ms3452 KiB
14Időlimit túllépés0/2588ms3460 KiB
15Időlimit túllépés0/2589ms3476 KiB
16Időlimit túllépés0/2601ms5280 KiB
17Időlimit túllépés0/2600ms5084 KiB
18Időlimit túllépés0/2583ms5208 KiB
19Időlimit túllépés0/2579ms4936 KiB
20Időlimit túllépés0/3600ms3380 KiB
21Időlimit túllépés0/3600ms3504 KiB
22Időlimit túllépés0/3583ms3348 KiB
23Időlimit túllépés0/3587ms3636 KiB