結果
問題 | No.2618 除霊 |
ユーザー |
![]() |
提出日時 | 2024-01-26 23:13:50 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 722 ms / 2,000 ms |
コード長 | 771 bytes |
コンパイル時間 | 173 ms |
コンパイル使用メモリ | 82,216 KB |
実行使用メモリ | 168,924 KB |
最終ジャッジ日時 | 2024-09-28 09:03:08 |
合計ジャッジ時間 | 23,597 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 43 |
ソースコード
import sysinput=sys.stdin.readlineN=int(input())edge=[[] for _ in range(N)]for _ in range(N-1):a,b=map(int,input().split())edge[a-1].append(b-1)edge[b-1].append(a-1)M=int(input())count=[False]*Nvtoinfect=[0]*(N)V=list(map(int,input().split()))V=set(V)for v in V:count[v-1]+=1for e in edge[v-1]:count[e]+=1for v in V:for e in edge[v-1]:if count[e]==1:vtoinfect[v-1]+=1ans_one=N-count.count(0)is_obake=[int(i+1 in V) for i in range(N)]for i in range(N):sub=0if count[i]>0:sub+=1for e in edge[i]:if count[e]>0 and count[e]-is_obake[i]-is_obake[e]==0:sub+=1if is_obake[e]==1:sub+=vtoinfect[e]-int(count[i]==1)print(ans_one-sub)