結果
問題 | No.416 旅行会社 |
ユーザー |
![]() |
提出日時 | 2018-06-04 20:35:31 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 965 ms / 4,000 ms |
コード長 | 827 bytes |
コンパイル時間 | 487 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 143,632 KB |
最終ジャッジ日時 | 2024-12-14 20:27:59 |
合計ジャッジ時間 | 11,221 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 21 |
ソースコード
n, m, q = map(int, input().split())es = [tuple(map(int, input().split())) for _ in range(m)]qs = [tuple(map(int, input().split())) for _ in range(q)]vs = [[i] for i in range(n+1)]def find(i):if vs[i][0] == i:return ij = find(vs[i][0])vs[i] = vs[j]return jdef union(i, j):if vs[i] is vs[j]:returnif len(vs[i]) < len(vs[j]):i, j = j, ivs[i] += vs[j]vs[j] = vs[i]s = set(qs)for i, j in es:if (i,j) not in s:union(find(i), find(j))res = [-1]*(n+1)for i, j in qs[::-1]:q -= 1i = find(i)j = find(j)if i == j:continuek = find(1)if j == k:i, j = j, iif i == k:for v in vs[j]:res[v] = q + 1union(i, j)for i in range(2, n+1):print(res[i] * (find(i) is find(1)))