結果

問題 No.3013 ハチマキ買い星人
ユーザー ゼット
提出日時 2025-01-25 13:05:51
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 697 ms / 2,000 ms
コード長 633 bytes
コンパイル時間 320 ms
コンパイル使用メモリ 82,420 KB
実行使用メモリ 114,676 KB
最終ジャッジ日時 2025-01-25 22:33:17
合計ジャッジ時間 17,432 ms
ジャッジサーバーID
(参考情報)
judge11 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 45
権限があれば一括ダウンロードができます

ソースコード

diff #

N,M,p,X=map(int,input().split())
G=[[] for i in range(N)]
for i in range(M):
  a,b,c=map(int,input().split())
  G[a-1].append((b-1,c))
  G[b-1].append((a-1,c))
A=[10**18]*N
for i in range(p):
  d,e=map(int,input().split())
  A[d-1]=e
result=0
from heapq import heappush,heappop
S=[]
dp=[10**18]*N
dp[0]=0
heappush(S,0)
kaku=[False]*N
while S:
  w=heappop(S)
  time=w//(10**6)
  pos=w%(10**6)
  if kaku[pos]==True:
    continue
  kaku[pos]=True
  for B in G[pos]:
    z,c=B[:]
    if dp[z]>dp[pos]+c:
      dp[z]=dp[pos]+c
      heappush(S,dp[z]*10**6+z)
for i in range(N):
  rest=X-dp[i]
  result=max(result,rest//A[i])
print(result)
0