結果
問題 | No.1640 簡単な色塗り |
ユーザー |
![]() |
提出日時 | 2023-05-17 01:43:46 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 261 ms / 2,000 ms |
コード長 | 978 bytes |
コンパイル時間 | 276 ms |
コンパイル使用メモリ | 82,560 KB |
実行使用メモリ | 98,452 KB |
最終ジャッジ日時 | 2024-12-14 22:51:48 |
合計ジャッジ時間 | 19,605 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 53 |
ソースコード
import sysreadline=sys.stdin.readlineN=int(readline())used=[False]*Ncnt=[0]*Ngraph=[[] for x in range(N)]for i in range(N):a,b=map(int,readline().split())a-=1;b-=1graph[a].append((b,i))graph[b].append((a,i))cnt[a]+=1cnt[b]+=1ans_lst=[None]*Nif 0 in cnt:print("No")exit()stack=[x for x in range(N) if cnt[x]==1]while stack:x=stack.pop()for y,i in graph[x]:if not used[i]:cnt[x]-=1ans_lst[i]=x+1used[i]=Truecnt[y]-=1if cnt[y]==1:stack.append(y)breakelse:print("No")exit()for x in range(N):if cnt[x]==0:continuewhile cnt[x]:for y,i in graph[x]:if not used[i]:cnt[x]-=1cnt[y]-=1ans_lst[i]=x+1used[i]=Truex=ybreakprint("Yes")print(*ans_lst,sep="\n")