121512024-12-04 15:22:07dfehervariBináris fa magassága (50 pont)python3Wrong answer 0/50600ms5432 KiB
#1. Bináris fa magassága v.2.

#befájl = open("be1.txt")
#n,m=map(int,befájl.readline().split())
n,m=map(int,input().split())

#print(n,m)
#csúcsok feltöltése
utak =[0,0] #Az adott csúcsba a szülőtől vezető út hossza
#levelek = [] #Az adott csúcsba a gyökértől vezető út hossza
"""
for k in range(1,n):
    for j in range(2**k):
        utak.append(1)
"""
utak.extend([1]*(2**(n+1)-2))
levelek = [n-1]*(2**n-2**(n-1))

#for k in range(2**(n-1),2**n):
#    levelek.append(n-1)
    
#print(utak, levelek)

for i in range(m):
    
    #cs, h = map(int,befájl.readline().split())
    
    cs, h = map(int,input().split())
    #print(cs,h)
    #Kell, hogy a csúcs hányadik szinten van
    k = 1
    while (cs//(2**k)) != 0:
        k=k+1
    változás = h - utak[cs]
    utak[cs]=h
    kezdet=cs*2**(n-k)-2**(n-1)
    vég=(cs+1)*2**(n-k)-2**(n-1)
    maxi=0
    for j in range(kezdet,vég):
        levelek[j] += változás
        if levelek[j]>maxi:
            maxi=levelek[j]
        
    
    #print(levelek)
    #print(max(levelek))
    #print(maxi)

#befájl.close()

SubtaskSumTestVerdictTimeMemory
base0/50
1Wrong answer0/017ms3048 KiB
2Time limit exceeded0/0584ms5408 KiB
3Wrong answer0/219ms3040 KiB
4Wrong answer0/219ms3020 KiB
5Wrong answer0/219ms3132 KiB
6Wrong answer0/219ms3128 KiB
7Wrong answer0/320ms3132 KiB
8Wrong answer0/321ms2964 KiB
9Wrong answer0/324ms2952 KiB
10Wrong answer0/323ms2964 KiB
11Wrong answer0/2328ms5188 KiB
12Wrong answer0/2328ms5176 KiB
13Wrong answer0/2330ms5040 KiB
14Wrong answer0/2337ms5200 KiB
15Wrong answer0/2333ms5176 KiB
16Time limit exceeded0/2600ms5392 KiB
17Time limit exceeded0/2580ms5320 KiB
18Time limit exceeded0/2588ms5328 KiB
19Time limit exceeded0/2588ms5432 KiB
20Time limit exceeded0/3578ms5280 KiB
21Time limit exceeded0/3582ms5180 KiB
22Time limit exceeded0/3591ms5180 KiB
23Time limit exceeded0/3591ms5168 KiB