結果
| 問題 |
No.1647 Travel in Mitaru city 2
|
| コンテスト | |
| ユーザー |
sotanishy
|
| 提出日時 | 2021-08-15 00:26:13 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,019 bytes |
| コンパイル時間 | 533 ms |
| コンパイル使用メモリ | 82,292 KB |
| 実行使用メモリ | 135,132 KB |
| 最終ジャッジ日時 | 2024-10-06 04:26:29 |
| 合計ジャッジ時間 | 22,871 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 34 WA * 14 |
ソースコード
import sys
input = sys.stdin.readline
H, W, N = map(int, input().split())
G = [set() for _ in range(H+W)]
for i in range(N):
x, y = map(lambda x: int(x) - 1, input().split())
G[x].add((H+y, i))
G[H+y].add((x, i))
st = []
for v in range(H+W):
if len(G[v]) == 1:
st.append(v)
while st:
v = st.pop()
for u, i in G[v]:
G[u].remove((v, i))
if len(G[u]) == 1:
st.append(u)
G[v] = set()
prev = [None] * (H+W)
for s in range(H):
if prev[s] is not None:
continue
st = [(s, -1, -1)]
while st:
v, p, j = st.pop()
prev[v] = (p, j)
for u, i in G[v]:
if (u, i) == prev[v]:
continue
if prev[u] is not None:
ans = [i]
while v != s:
v, i = prev[v]
ans.append(i)
print(len(ans))
print(*map(lambda x: x + 1, ans[::-1]))
exit()
st.append((u, v, i))
print(-1)
sotanishy