結果

問題 No.3756 Udon Network
ユーザー tsunamayo123
提出日時 2026-09-11 21:21:59
言語 PyPy3
(7.3.23 + ACL)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
WA  
実行時間 -
コード長 825 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 62 ms
コンパイル使用メモリ 81,164 KB
実行使用メモリ 127,016 KB
最終ジャッジ日時 2026-10-09 17:40:39
合計ジャッジ時間 31,752 ms
ジャッジサーバーID
(参考情報)
judge5_0 / judge4_0
このコードへのチャレンジ
(要ログイン)
サブタスク 配点 結果
Example 0 % AC * 2 WA * 6
Subtask $1$ 2 % AC * 3 WA * 12
Subtask $2$ 4 % AC * 3 WA * 19
Subtask $3$ 8 % AC * 9
Subtask $4$ 16 % AC * 4 WA * 6
Subtask $5$ 32 % AC * 2 WA * 8
Subtask $6$ 38 % AC * 11 WA * 42
合計 4 * 8% = 32 点
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

# 部分点1

import heapq

N,M,Q = map(int, input().split())

A = list(map(int, input().split()))
A = [x-1 for x in A]

G = [[] for _ in range(N)]

for i in range(M):
    u,v,w = map(int, input().split())
    G[u-1].append((v-1,w))
    G[v-1].append((u-1,w))


hq = []

start=0 # s=1より始点は0 (0-indexedで管理)
dist = [10**9+1]*N
dist[start]=0

heapq.heappush(hq,(0,start))

while hq:
    m,p = heapq.heappop(hq)
    if dist[p]!=m:
        continue

    for nex,w in G[p]:
        if (max(m,w)<dist[nex]):
            dist[nex]=max(m,w)
            heapq.heappush(hq,(dist[nex],nex))

ans=[10**9+1]*N
for i in range(N):
    ans[A[i]]=min(ans[A[i]],dist[i])

ans=sorted(ans)

for _ in range(Q):
    s,c = map(int, input().split()) # s=1

    if ans[c-1]==10**9+1:
        print(-1)
    else:
        print(ans[c-1])
0