結果
問題 | No.1190 Points |
ユーザー | McGregorsh |
提出日時 | 2023-07-13 23:44:59 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 536 ms / 2,000 ms |
コード長 | 2,484 bytes |
コンパイル時間 | 387 ms |
コンパイル使用メモリ | 82,448 KB |
実行使用メモリ | 131,432 KB |
最終ジャッジ日時 | 2024-09-15 09:14:24 |
合計ジャッジ時間 | 11,640 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 140 ms
88,064 KB |
testcase_01 | AC | 141 ms
88,448 KB |
testcase_02 | AC | 139 ms
88,308 KB |
testcase_03 | AC | 361 ms
112,256 KB |
testcase_04 | AC | 337 ms
108,020 KB |
testcase_05 | AC | 333 ms
112,476 KB |
testcase_06 | AC | 403 ms
115,560 KB |
testcase_07 | AC | 447 ms
123,596 KB |
testcase_08 | AC | 399 ms
131,152 KB |
testcase_09 | AC | 424 ms
128,064 KB |
testcase_10 | AC | 408 ms
131,432 KB |
testcase_11 | AC | 370 ms
115,968 KB |
testcase_12 | AC | 415 ms
127,320 KB |
testcase_13 | AC | 379 ms
110,976 KB |
testcase_14 | AC | 202 ms
101,504 KB |
testcase_15 | AC | 529 ms
126,508 KB |
testcase_16 | AC | 198 ms
94,336 KB |
testcase_17 | AC | 487 ms
124,860 KB |
testcase_18 | AC | 296 ms
101,888 KB |
testcase_19 | AC | 198 ms
105,644 KB |
testcase_20 | AC | 336 ms
106,540 KB |
testcase_21 | AC | 230 ms
99,584 KB |
testcase_22 | AC | 228 ms
105,344 KB |
testcase_23 | AC | 536 ms
125,888 KB |
testcase_24 | AC | 514 ms
127,164 KB |
testcase_25 | AC | 414 ms
116,192 KB |
testcase_26 | AC | 333 ms
114,856 KB |
testcase_27 | AC | 426 ms
115,984 KB |
ソースコード
import sys from sys import stdin from fractions import Fraction import math from math import ceil, floor, sqrt, pi, factorial, gcd from copy import deepcopy from collections import Counter, deque, defaultdict from heapq import heapify, heappop, heappush from itertools import accumulate, product, combinations, combinations_with_replacement, permutations from bisect import bisect, bisect_left, bisect_right from functools import reduce, lru_cache from decimal import Decimal, getcontext, ROUND_HALF_UP def i_input(): return int(stdin.readline()) def i_map(): return map(int, stdin.readline().split()) def i_list(): return list(i_map()) def s_input(): return stdin.readline()[:-1] def s_map(): return s_input().split() def s_list(): return list(s_map()) def lcm(a, b): return a * b // gcd(a, b) def get_distance(x1, y1, x2, y2): d = sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2) return d def rotate(table): n_fild = [] for x in zip(*table[::-1]): n_fild.append(x) return n_fild sys.setrecursionlimit(10 ** 7) INF = float('inf') MOD = 10 ** 9 + 7 MOD2 = 998244353 alpa = 'abcdefghijklmnopqrstuvwxyz' ALPA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' def main(): N, M, P = i_map() S, G = i_map() S -= 1 G -= 1 nums = [[] for i in range(N*2)] for i in range(M): a, b = i_map() a -= 1 b -= 1 nums[a].append(N+b) nums[b].append(N+a) nums[N+a].append(b) nums[N+b].append(a) Sscore = [INF] * (N*2) Sscore[S] = 0 que = deque() que.append(S) while que: p = que.popleft() for nxt in nums[p]: if Sscore[nxt] == INF: Sscore[nxt] = Sscore[p] + 1 que.append(nxt) Gscore = [INF] * (N*2) Gscore[G] = 0 gque = deque() gque.append(G) while gque: p = gque.popleft() for nxt in nums[p]: if Gscore[nxt] == INF: Gscore[nxt] = Gscore[p] + 1 gque.append(nxt) ans = set() for i in range(N): a = Sscore[i] b = Sscore[i+N] c = Gscore[i] d = Gscore[i+N] if P % 2 == 0: if (a+c) <= P: ans.add(i+1) if (b+d) <= P: ans.add(i+1) else: if (a+d)<= P: ans.add(i+1) if (b+c) <= P: ans.add(i+1) ans = list(ans) if len(ans) == 0: print(-1) exit() print(len(ans)) ans.sort() for i in ans: print(i) if __name__ == '__main__': main()