結果

問題 No.1607 Kth Maximum Card
ユーザー rlangevin
提出日時 2023-10-04 12:16:27
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,851 ms / 3,500 ms
コード長 951 bytes
コンパイル時間 239 ms
コンパイル使用メモリ 82,432 KB
実行使用メモリ 134,896 KB
最終ジャッジ日時 2024-07-26 14:31:11
合計ジャッジ時間 19,909 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 33
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

import sys
input = sys.stdin.readline
N, M, K = map(int, input().split())
G = [[] for i in range(N)]
for i in range(M):
u, v, c = map(int, input().split())
u, v = u - 1, v - 1
G[u].append((v, c))
G[v].append((u, c))
from collections import *
def check(m):
Q = deque()
inf = 10 ** 18
dist = [inf] * N
dist[0] = 0
Q.append(0)
while Q:
u = Q.popleft()
d = dist[u]
for v, cost in G[u]:
if d >= K and d != inf:
return dist[-1] < K
c = int(cost > m)
if dist[v] <= d + c:
continue
dist[v] = d + c
if c == 0:
Q.appendleft(v)
else:
Q.append(v)
return dist[-1] < K
if check(0):
print(0)
exit()
yes = 2 * 10 ** 5 + 5
no = 0
while yes - no != 1:
mid = (yes + no)//2
if check(mid):
yes = mid
else:
no = mid
print(yes)
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0