結果
問題 |
No.1718 Random Squirrel
|
ユーザー |
![]() |
提出日時 | 2025-07-20 04:03:20 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 836 bytes |
コンパイル時間 | 470 ms |
コンパイル使用メモリ | 82,292 KB |
実行使用メモリ | 106,960 KB |
最終ジャッジ日時 | 2025-07-20 04:03:33 |
合計ジャッジ時間 | 11,261 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 18 WA * 13 |
ソースコード
n,k=map(int,input().split()) e=[[] for i in range(n)] for i in range(n-1): u,v=map(int,input().split()) u-=1 v-=1 e[u]+=[v] e[v]+=[u] d=[0]*n for v in list(map(int,input().split())): d[v-1]=1 v=[0]*n u1=[0]*n u2=[0]*n u3=[0]*n u4=[0]*n q=[0] while len(q)>0: s=q[-1] if v[s]==0: v[s]=1 q+=[t for t in e[s] if v[t]==0] else: for t in e[s]: if v[t]==0 and u3[t]>0: u3[s]+=u3[t] u2[s]=max(u2[s],u2[t]+1) u1[s]+=u1[t]+2 u3[s]+=d[s] v[s]=0 q.pop() q=[0] for s in q: u5=sorted([u2[t]+1 for t in e[s] if v[t]==0 and u3[t]>0]+[u4[s]]+[0,0])[-2:][::-1] for t in e[s]: if v[t]==0: if k-u3[t]>0: u4[t]=u5[u5[0]==u2[t]+1 and u3[t]>0]+1 u1[t]+=u1[s]-(u1[t]+2)*(u3[t]>0)+2 q+=[t] v[t]=1 for i in range(n): print(u1[i]-max(u2[i],u4[i]))