結果
問題 | No.1254 補強への架け橋 |
ユーザー | anagohirame |
提出日時 | 2020-10-09 23:20:54 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 452 ms / 2,000 ms |
コード長 | 667 bytes |
コンパイル時間 | 276 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 200,832 KB |
最終ジャッジ日時 | 2024-07-20 14:16:12 |
合計ジャッジ時間 | 20,078 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 123 |
ソースコード
import sys sys.setrecursionlimit(10**6) def input(): return sys.stdin.buffer.readline()[:-1] n = int(input()) adj = [[] for _ in range(n)] prev = [(-1, -1) for _ in range(n)] vstd = [False for _ in range(n)] for i in range(n): a, b = map(int, input().split()) adj[a-1].append((b-1, i+1)) adj[b-1].append((a-1, i+1)) def dfs(i, p): for j, e in adj[i]: if j == p: continue if not vstd[j]: vstd[j] = True prev[j] = (i, e) dfs(j, i) else: ans = [e] cur = i while True: ans.append(prev[cur][1]) cur = prev[cur][0] if cur == j: print(len(ans)) print(*ans) sys.exit() break return vstd[0] = True dfs(0, -1)