結果
問題 | No.1190 Points |
ユーザー | McGregorsh |
提出日時 | 2023-07-13 23:39:35 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,484 bytes |
コンパイル時間 | 189 ms |
コンパイル使用メモリ | 81,848 KB |
実行使用メモリ | 131,804 KB |
最終ジャッジ日時 | 2024-09-15 09:10:56 |
合計ジャッジ時間 | 12,247 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 149 ms
88,576 KB |
testcase_01 | AC | 152 ms
88,064 KB |
testcase_02 | AC | 152 ms
88,576 KB |
testcase_03 | AC | 363 ms
112,768 KB |
testcase_04 | AC | 332 ms
108,160 KB |
testcase_05 | WA | - |
testcase_06 | AC | 414 ms
115,456 KB |
testcase_07 | WA | - |
testcase_08 | WA | - |
testcase_09 | AC | 421 ms
128,316 KB |
testcase_10 | AC | 398 ms
131,804 KB |
testcase_11 | WA | - |
testcase_12 | AC | 429 ms
128,348 KB |
testcase_13 | AC | 377 ms
111,104 KB |
testcase_14 | AC | 210 ms
101,632 KB |
testcase_15 | AC | 496 ms
126,900 KB |
testcase_16 | AC | 208 ms
93,952 KB |
testcase_17 | AC | 472 ms
124,728 KB |
testcase_18 | AC | 310 ms
101,888 KB |
testcase_19 | AC | 200 ms
105,600 KB |
testcase_20 | AC | 345 ms
106,624 KB |
testcase_21 | WA | - |
testcase_22 | AC | 234 ms
104,960 KB |
testcase_23 | AC | 519 ms
126,024 KB |
testcase_24 | AC | 498 ms
127,288 KB |
testcase_25 | AC | 410 ms
116,480 KB |
testcase_26 | AC | 331 ms
114,944 KB |
testcase_27 | AC | 400 ms
115,968 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+a) <= 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()