96662024-02-23 20:20:12NagyLeoBináris fa magassága (50 pont)pypy3Elfogadva 50/50114ms95044 KiB
from sys import stdin, stdout
input=stdin.readline

def main2():
    N, M = map(int, input().split())
    # current_mods = {}

    corners_len = [0] * (2 ** N)
    elhossz = [1] * (2 ** N)
    # index=1
    # tav=N-1

    for i in range(N):
        ii = 2 ** i
        for j in range(ii):
            corners_len[ii + j] = N - i - 1

    for i in range(M):
        deepest = 0
        A, B = map(int, input().split())
        # current_mods[A] = B
        elhossz[A] = B
        curIndex = A
        while curIndex > 1:
            curIndex //= 2
            corners_len[curIndex] = max(corners_len[2 * curIndex] + elhossz[2 * curIndex],
                                        corners_len[2 * curIndex + 1] + elhossz[2 * curIndex + 1])
        stdout.write(str(corners_len[1])+"\n")


main2()
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/043ms76612 KiB
2Elfogadva0/092ms91628 KiB
3Elfogadva2/250ms80628 KiB
4Elfogadva2/267ms87936 KiB
5Elfogadva2/268ms88512 KiB
6Elfogadva2/268ms88760 KiB
7Elfogadva3/374ms89460 KiB
8Elfogadva3/372ms89532 KiB
9Elfogadva3/364ms89592 KiB
10Elfogadva3/364ms89688 KiB
11Elfogadva2/2100ms93864 KiB
12Elfogadva2/297ms93872 KiB
13Elfogadva2/2114ms94260 KiB
14Elfogadva2/2101ms94696 KiB
15Elfogadva2/2107ms95044 KiB
16Elfogadva2/294ms94816 KiB
17Elfogadva2/2101ms94912 KiB
18Elfogadva2/2101ms94900 KiB
19Elfogadva2/294ms94788 KiB
20Elfogadva3/3101ms94664 KiB
21Elfogadva3/392ms94772 KiB
22Elfogadva3/392ms94836 KiB
23Elfogadva3/3112ms94968 KiB