結果
問題 | No.1190 Points |
ユーザー |
![]() |
提出日時 | 2023-05-14 16:44:13 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 505 ms / 2,000 ms |
コード長 | 1,147 bytes |
コンパイル時間 | 200 ms |
コンパイル使用メモリ | 82,368 KB |
実行使用メモリ | 110,896 KB |
最終ジャッジ日時 | 2024-11-30 04:54:20 |
合計ジャッジ時間 | 10,479 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 25 |
ソースコード
import sysinput = sys.stdin.readlinefrom collections import dequedef bfs(G, s, N):Q = deque([])inf = 10 ** 18dist = [inf] * Npar = [-1] * Ndist[s] = 0for u in G[s]:par[u] = sdist[u] = 1Q.append(u)while Q:u = Q.popleft()for v in G[u]:if dist[v] != inf:continuedist[v] = dist[u] + 1par[v] = uQ.append(v)return distN, M, P = map(int, input().split())s, g = map(int, input().split())s, g = s - 1, g - 1G = [[] for i in range(2 * N)]for i in range(M):u, v = map(int, input().split())u, v = u - 1, v - 1G[u].append(v + N)G[v].append(u + N)G[u + N].append(v)G[v + N].append(u)ans = []DS = bfs(G, s, 2 * N)DG = bfs(G, g, 2 * N)for i in range(N):if P % 2:if DS[i] + DG[i + N] <= P or DS[i + N] + DG[i] <= P:ans.append(i + 1)else:if DS[i] + DG[i] <= P or DS[i + N] + DG[i + N] <= P:ans.append(i + 1)if ans:print(len(ans))for a in ans:print(a)else:print(-1)