結果
問題 |
No.2301 Namorientation
|
ユーザー |
![]() |
提出日時 | 2024-09-13 16:42:03 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 787 ms / 3,000 ms |
コード長 | 720 bytes |
コンパイル時間 | 403 ms |
コンパイル使用メモリ | 81,976 KB |
実行使用メモリ | 170,744 KB |
最終ジャッジ日時 | 2024-09-13 16:42:23 |
合計ジャッジ時間 | 20,071 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 30 |
ソースコード
n=int(input()) e=[[] for i in range(n)] d={} for i in range(n): a,b=map(int,input().split()) a-=1 b-=1 e[a]+=[b] e[b]+=[a] d[(a,b)]=i v=[0]*n g=[0]*n v[0]=1 q=[0] o=[] while len(q)>0: s=q[-1] while g[s]<len(e[s]): t=e[s][g[s]] if v[t]==0: break elif v[t]<v[s]-1: o=q[q.index(t):] break g[s]+=1 if len(o)!=0: break if g[s]<len(e[s]): g[s]+=1 v[t]=v[s]+1 q+=[t] else: v[s]=0 q.pop() ans=["->"]*n for i in range(len(o)): s=o[i-1] t=o[i] if s>t: ans[d[(t,s)]]="<-" v=[0]*n q=[] for s in o: v[s]=1 q+=[s] for s in q: for t in e[s]: if v[t]==0: v[t]=1 if s<t: ans[d[(s,t)]]="<-" q+=[t] print(*ans,sep="\n")