結果

問題 No.1473 おでぶなおばけさん
ユーザー hitonanodehitonanode
提出日時 2021-04-04 18:36:12
言語 Python3
(3.12.2 + numpy 1.26.4 + scipy 1.12.0)
結果
AC  
実行時間 977 ms / 2,000 ms
コード長 1,047 bytes
コンパイル時間 78 ms
コンパイル使用メモリ 12,416 KB
実行使用メモリ 49,956 KB
最終ジャッジ日時 2024-06-08 15:20:26
合計ジャッジ時間 19,583 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 24 ms
10,624 KB
testcase_01 AC 26 ms
10,752 KB
testcase_02 AC 820 ms
48,688 KB
testcase_03 AC 448 ms
44,656 KB
testcase_04 AC 418 ms
30,720 KB
testcase_05 AC 162 ms
19,456 KB
testcase_06 AC 720 ms
46,436 KB
testcase_07 AC 619 ms
49,824 KB
testcase_08 AC 977 ms
49,956 KB
testcase_09 AC 625 ms
49,824 KB
testcase_10 AC 453 ms
38,656 KB
testcase_11 AC 469 ms
37,444 KB
testcase_12 AC 439 ms
39,320 KB
testcase_13 AC 245 ms
25,992 KB
testcase_14 AC 177 ms
22,400 KB
testcase_15 AC 375 ms
34,240 KB
testcase_16 AC 325 ms
37,632 KB
testcase_17 AC 42 ms
12,672 KB
testcase_18 AC 55 ms
13,568 KB
testcase_19 AC 347 ms
30,464 KB
testcase_20 AC 385 ms
35,712 KB
testcase_21 AC 580 ms
37,376 KB
testcase_22 AC 275 ms
36,096 KB
testcase_23 AC 234 ms
32,768 KB
testcase_24 AC 223 ms
32,128 KB
testcase_25 AC 290 ms
38,272 KB
testcase_26 AC 302 ms
39,296 KB
testcase_27 AC 123 ms
22,144 KB
testcase_28 AC 373 ms
43,644 KB
testcase_29 AC 304 ms
35,072 KB
testcase_30 AC 367 ms
38,784 KB
testcase_31 AC 527 ms
48,884 KB
testcase_32 AC 675 ms
47,380 KB
testcase_33 AC 350 ms
37,472 KB
testcase_34 AC 232 ms
25,856 KB
testcase_35 AC 223 ms
27,904 KB
testcase_36 AC 215 ms
32,000 KB
testcase_37 AC 222 ms
33,688 KB
testcase_38 AC 63 ms
15,360 KB
testcase_39 AC 357 ms
37,996 KB
testcase_40 AC 325 ms
37,984 KB
testcase_41 AC 288 ms
34,880 KB
testcase_42 AC 292 ms
35,012 KB
testcase_43 AC 482 ms
43,872 KB
testcase_44 AC 485 ms
44,004 KB
testcase_45 AC 485 ms
44,000 KB
testcase_46 AC 266 ms
36,828 KB
testcase_47 AC 335 ms
45,016 KB
testcase_48 AC 367 ms
42,568 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

# Python 二分探索解 AC になってほしい
from collections import deque
import sys
input = sys.stdin.readline

def main():
    N, M = map(int, input().split())
    to = [[] for _ in range(N)]
    ds = []
    for _ in range(M):
        s, t, d = map(int, input().split())
        s -= 1
        t -= 1
        to[s].append((t, d))
        to[t].append((s, d))
        ds.append(d)
    
    ds = sorted(set(ds))
    ok, ng = 0, len(ds)

    def calc(th: int):
        dist = [1 << 30] * N
        dist[0] = 0
        q = deque([0])
        while q:
            now = q.popleft()
            for nxt, d in to[now]:
                if d >= th and dist[nxt] > dist[now] + 1:
                    dist[nxt] = dist[now] + 1
                    q.append(nxt)
        return dist[-1]

    while ng - ok > 1:
        c = (ok + ng) // 2
        x = calc(ds[c])
        if x < 1 << 30:
            ok = c
        else:
            ng = c
    print(ds[ok], calc(ds[ok]))

if __name__ == '__main__':
    main()
0