171252025-05-24 01:48:45ProgiBináris fa magassága (50 pont)python3Elfogadva 50/50388ms4776 KiB
from sys import stdin

def main():
    N,M = [int(i) for i in stdin.readline().split()]
##    start_time = time.time()
    a = [N]   # alatta levő "mélység"
    k = 1
    for i in range(1,N):
        a = a + [N-i]*k
        k *= 2
    h = [1]*k*2

    for i in range(M):
        cs,x = [int(i) for i in stdin.readline().split()]
        h[cs] = x
        while cs > 1:
            c = cs//2
            c2 = c*2
            if cs < k:
                a[c] = max(h[c2]+a[c2], h[c2+1]+a[c2+1])
            else:
                a[c] = max(h[c2], h[c2+1])
            cs = c
        print(a[1])
##    print(round(time.time() - start_time, 4))

##import time
main()
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/017ms3060 KiB
2Elfogadva0/0263ms4580 KiB
3Elfogadva2/217ms3124 KiB
4Elfogadva2/217ms3136 KiB
5Elfogadva2/218ms3028 KiB
6Elfogadva2/219ms3116 KiB
7Elfogadva3/318ms3156 KiB
8Elfogadva3/319ms3232 KiB
9Elfogadva3/319ms3244 KiB
10Elfogadva3/318ms3468 KiB
11Elfogadva2/2388ms4588 KiB
12Elfogadva2/2386ms4776 KiB
13Elfogadva2/2386ms4672 KiB
14Elfogadva2/2381ms4776 KiB
15Elfogadva2/2379ms4668 KiB
16Elfogadva2/2263ms4648 KiB
17Elfogadva2/2270ms4692 KiB
18Elfogadva2/2270ms4776 KiB
19Elfogadva2/2263ms4776 KiB
20Elfogadva3/3287ms4520 KiB
21Elfogadva3/3284ms4520 KiB
22Elfogadva3/3289ms4588 KiB
23Elfogadva3/3286ms4712 KiB