結果
問題 |
No.2780 The Bottle Imp
|
ユーザー |
|
提出日時 | 2025-03-27 11:10:42 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,138 bytes |
コンパイル時間 | 372 ms |
コンパイル使用メモリ | 82,592 KB |
実行使用メモリ | 247,116 KB |
最終ジャッジ日時 | 2025-03-27 11:10:57 |
合計ジャッジ時間 | 12,685 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 32 WA * 8 |
ソースコード
import sys sys.setrecursionlimit(10**6) N = int(input()) FG = {i:[] for i in range(1,N+1)} for i in range(1,N+1): A = list(map(int,input().split())) for j in range(1,A[0]+1): FG[i].append(A[j]) A = [0]*(N+1) invA = [0]*(N+1) visited = [0]*(N+1) cnt = 1 def dfs1(v): global cnt visited[v] = 1 for u in FG[v]: if visited[u]==0: dfs1(u) A[v] = cnt invA[cnt] = v cnt += 1 for i in range(1,N+1): if visited[i]==0: dfs1(i) BG = {i:[] for i in range(1,N+1)} for i in range(1,N+1): for j in FG[i]: BG[j].append(i) Col = [0]*(N+1) cnt = 1 def dfs2(v,cnt): Col[v] = cnt for u in BG[v]: if Col[u]==0: dfs2(u,cnt) for i in range(N,0,-1): if Col[invA[i]]==0: dfs2(invA[i],cnt) cnt += 1 G = {c:set([]) for c in range(1,cnt)} for i in range(1,N+1): c = Col[i] for j in FG[i]: if Col[j]!=c: G[c].add(Col[j]) if cnt-1==1: print("Yes") else: outdeg = 0 for c in G: outdeg += len(G[c]) if outdeg==cnt-2: print("Yes") else: print("No")