結果
問題 | No.2301 Namorientation |
ユーザー |
![]() |
提出日時 | 2024-09-13 16:39:19 |
言語 | PyPy3 (7.3.15) |
結果 |
MLE
|
実行時間 | - |
コード長 | 707 bytes |
コンパイル時間 | 144 ms |
コンパイル使用メモリ | 81,744 KB |
実行使用メモリ | 684,452 KB |
最終ジャッジ日時 | 2024-09-13 16:39:26 |
合計ジャッジ時間 | 5,198 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | MLE * 2 |
other | -- * 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: if s<t: ans[d[(s,t)]]="<-" q+=[t] print(*ans,sep="\n")