結果
問題 | No.1254 補強への架け橋 |
ユーザー | qib |
提出日時 | 2022-10-17 16:06:20 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 283 ms / 2,000 ms |
コード長 | 710 bytes |
コンパイル時間 | 157 ms |
コンパイル使用メモリ | 81,788 KB |
実行使用メモリ | 103,920 KB |
最終ジャッジ日時 | 2024-06-28 06:30:39 |
合計ジャッジ時間 | 22,943 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 123 |
ソースコード
from collections import deque n = int(input()) g = [[] for _ in range(n)] edges = [] for _ in range(n): a, b = map(int, input().split()) a -= 1 b -= 1 g[a].append(b) g[b].append(a) edges.append((a, b)) dq = deque() deg = [len(g[v]) for v in range(n)] used = [False for _ in range(n)] for v in range(n): if deg[v] == 1: deg[v] -= 1 used[v] = True dq.appendleft(v) while len(dq) > 0: cur = dq.pop() for nxt in g[cur]: if used[nxt]: continue deg[nxt] -= 1 if deg[nxt] == 1: deg[nxt] -= 1 used[nxt] = True dq.appendleft(nxt) ans = [] for i in range(len(edges)): a, b = edges[i] if not used[a] and not used[b]: ans.append(i + 1) print(len(ans)) print(*ans, sep=" ")