118762024-11-13 18:57:0042Bináris fa magassága (50 pont)python3Időlimit túllépés 40/50600ms5004 KiB
# O(2^N+M*N)
from sys import stdin, stdout
input=stdin.readline

N,M=[int(x) for x in input().split()]
cur=[-1,N-1]
for i in range(N-1):cur+=[N-2-i]*2**(i+1)
elh=[-1]+[1]*(2**N-1)
for i in range(M):
 a,b=[int(x) for x in input().split()]
 elh[a]=b
 while a>1:
  a//=2
  cur[a]=max(cur[2*a]+elh[2*a],cur[2*a+1]+elh[2*a+1])
 print(cur[1])
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/50
1Elfogadva0/016ms3128 KiB
2Elfogadva0/0384ms4896 KiB
3Elfogadva2/217ms3128 KiB
4Elfogadva2/218ms3216 KiB
5Elfogadva2/219ms3116 KiB
6Elfogadva2/218ms3220 KiB
7Elfogadva3/319ms3128 KiB
8Elfogadva3/319ms3320 KiB
9Elfogadva3/319ms3304 KiB
10Elfogadva3/320ms3232 KiB
11Időlimit túllépés0/2583ms4904 KiB
12Időlimit túllépés0/2598ms5004 KiB
13Időlimit túllépés0/2600ms4896 KiB
14Időlimit túllépés0/2587ms4852 KiB
15Időlimit túllépés0/2574ms4832 KiB
16Elfogadva2/2404ms4896 KiB
17Elfogadva2/2381ms4896 KiB
18Elfogadva2/2416ms4896 KiB
19Elfogadva2/2372ms4896 KiB
20Elfogadva3/3437ms4908 KiB
21Elfogadva3/3441ms4896 KiB
22Elfogadva3/3425ms4896 KiB
23Elfogadva3/3435ms4992 KiB