結果
問題 |
No.3283 Labyrinth and Friends
|
ユーザー |
![]() |
提出日時 | 2025-09-27 10:15:01 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 811 bytes |
コンパイル時間 | 379 ms |
コンパイル使用メモリ | 82,240 KB |
実行使用メモリ | 78,320 KB |
最終ジャッジ日時 | 2025-09-27 10:15:07 |
合計ジャッジ時間 | 5,342 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 WA * 1 |
other | AC * 16 WA * 29 |
ソースコード
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=[] 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 i in range(N): dp[i][0]=0 for i in range(N-1): a,b,c=B[i] if c not in dp[i+1]: dp[i+1][c]=b for now in C[::-1]: p,_,_=B[now-1] E={} for d in dp[now]: for dd in dp[p]: if dd==0 and p!=0: continue c=d+dd;cc=dp[now][d]+dp[p][dd] if c not in E: E[c]=10**15 E[c]=min(E[c],cc) E[0]=0 dp[p]=E ans=10**15 for d in dp[0]: if d>=X: ans=min(ans,dp[0][d]) print(ans)