結果

問題 No.3283 Labyrinth and Friends
ユーザー timi
提出日時 2025-09-27 10:28:13
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 744 bytes
コンパイル時間 449 ms
コンパイル使用メモリ 82,360 KB
実行使用メモリ 79,432 KB
最終ジャッジ日時 2025-09-27 10:28:30
合計ジャッジ時間 7,126 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1 WA * 1
other AC * 1 WA * 44
権限があれば一括ダウンロードができます

ソースコード

diff #

N,X=map(int, input().split())
D=[[] for i in range(N)] 

A=list(map(int, input().split()))
B=[]
for i in range(1,N):
  p=A[i-1]
  c,s=map(int, input().split())
  D[p-1].append(i)
  B.append((p-1,c,s))
  
C=[0]
from collections import deque
d=deque()
d.append(0)
while d:
  now=d.popleft()
  for nex in D[now]:
    C.append(nex)
    d.append(nex)

dp=[{} for i in range(N)]
  
for now in C[::-1]:
  E={}
  E[0]=0
  for nex in D[now]:
    EE={}
    for e in E:
      for ee in dp[nex]:
        s=e+ee 
        if s not in EE:
          EE[s]=10**15 
        EE[s]=min(EE[s],E[e]+dp[nex][ee])
    E=EE
  a,b,c=B[now-1]
  for e in E:
    dp[now][e+c]=b+E[e]
  dp[now][0]=0

ans=10**15
for d in dp[0]:
  if d>=X:
    ans=min(ans,dp[0][d])
print(ans)
0