2025-10-08 22:44:46 +09:00

32 lines
748 B
Python

import sys
input = sys.stdin.readline
inf = 20000
n, m, r = map(int, input().split())
items = [0] + list(map(int, input().split()))
linked = [[inf for _ in range(n+1)] for _ in range(n+1)]
for _ in range(r) :
u, v, w = map(int, input().split())
linked[u][v] = w
linked[v][u] = w
for i in range(1, n+1) :
linked[i][i] = 0
for k in range(1, n+1) :
for i in range(1, n+1) :
for j in range(1, n+1) :
if linked[i][j] > linked[i][k] + linked[k][j] :
linked[i][j] = linked[i][k] + linked[k][j]
max_items = 0
for i in range(1,n+1) :
temp = 0
for j in range(1,n+1) :
if linked[i][j] <= m :
temp += items[j]
max_items = max(max_items, temp)
print(max_items)