結果
問題 |
No.2618 除霊
|
ユーザー |
![]() |
提出日時 | 2024-02-04 03:19:10 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 1,279 ms / 2,000 ms |
コード長 | 1,091 bytes |
コンパイル時間 | 223 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 65,116 KB |
最終ジャッジ日時 | 2024-09-28 11:08:34 |
合計ジャッジ時間 | 46,634 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 43 |
ソースコード
import sys input = sys.stdin.readline N=int(input()) E=[[] for i in range(N)] for i in range(N-1): a,b=map(int,input().split()) a-=1 b-=1 E[a].append(b) E[b].append(a) ANS=0 M=int(input()) V=list(map(int,input().split())) for i in range(M): V[i]-=1 LIST=[0]*N for v in V: LIST[v]=1 ANS=0 ANSLIST=[0]*N X=[0]*N for i in range(N): ji=0 if LIST[i]==1: ji=1 U=[] for to in E[i]: if LIST[to]==1: U.append(to) if ji==0 and U==[]: continue ANS+=1 if ji==1: ANSLIST[i]-=1 if U==[]: for to in E[i]: ANSLIST[to]-=1 elif len(U)==1: k=U[0] ANSLIST[k]-=1 else: if len(U)>=2: ANSLIST[i]-=1 else: k=U[0] X[k]+=1 for i in range(N): if X[i]>0: ANSLIST[i]-=X[i] for to in E[i]: ANSLIST[to]-=X[i] #print(ANS) #print(ANSLIST) for i in range(N): ANSLIST[i]+=ANS for ans in ANSLIST: print(ans)