214152026-01-13 07:51:55vyrallBináris fa magassága (50 pont)python3Hibás válasz 0/50600ms6692 KiB
n, m = map(int, input().split())
tree = (2**n - 1) * [0]
vals = (2**n - 1) * [1]
out = []

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

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

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

for i in out:
    print(i)
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Hibás válasz0/016ms3132 KiB
2Hibás válasz0/0430ms6668 KiB
3Hibás válasz0/219ms3124 KiB
4Hibás válasz0/218ms3116 KiB
5Hibás válasz0/219ms3108 KiB
6Hibás válasz0/219ms3152 KiB
7Hibás válasz0/320ms3164 KiB
8Hibás válasz0/321ms3384 KiB
9Hibás válasz0/320ms3128 KiB
10Hibás válasz0/320ms3124 KiB
11Időlimit túllépés0/2600ms4720 KiB
12Időlimit túllépés0/2600ms4992 KiB
13Időlimit túllépés0/2600ms5240 KiB
14Időlimit túllépés0/2584ms4644 KiB
15Időlimit túllépés0/2580ms4628 KiB
16Hibás válasz0/2432ms6692 KiB
17Hibás válasz0/2433ms6692 KiB
18Hibás válasz0/2430ms6692 KiB
19Hibás válasz0/2435ms6492 KiB
20Hibás válasz0/3467ms6468 KiB
21Hibás válasz0/3467ms6380 KiB
22Hibás válasz0/3467ms6436 KiB
23Hibás válasz0/3462ms6440 KiB