728x90
๋ฌธ์

ํ์ด
๋ค์ต์คํธ๋ผ ๋ฐฉ๋ฒ๊ณผ ํ๋ก์ด๋-์์ฌ ๋ฐฉ๋ฒ์ด ์๋๋ฐ,
๋ ธ๋์ ๊ฐ์๊ฐ ์ ์ด์ ํ๋ก์ด๋-์์ฌ ๋ฐฉ๋ฒ์ผ๋ก ํ์๋ค.
ํ๋ก์ด๋-์์ฌ ์๊ณ ๋ฆฌ์ฆ์ ์๋ค๋ฉด ์ฝ๊ฒ ํ ์ ์๋ ๋ฌธ์ ์ด๋ฏ๋ก ํ์ด๋ ์๋ตํจ.
์ฝ๋
from sys import stdin
input = stdin.readline
n, m, r = map(int, input().split())
items = list(map(int, input().split()))
graph = [[1e9] * (n + 1) for _ in range(n + 1)]
for _ in range(r):
a, b, l = map(int, input().split())
graph[a][b] = l
graph[b][a] = l
for i in range(n + 1):
for j in range(n + 1):
if i == j:
graph[i][j] = 0
for k in range(1, n + 1):
for i in range(1, n + 1):
for j in range(1, n + 1):
graph[i][j] = min(graph[i][k] + graph[k][j], graph[i][j])
maxItem = 0
for g in graph:
tmp = 0
for i in range(1, n + 1):
if g[i] <= m:
tmp += items[i - 1]
maxItem = max(maxItem, tmp)
print(maxItem)
๋ง๋ฌด๋ฆฌ
ํ๋ก์ด๋-์์ฌ... ์ดํด๋ ์๋ฒฝํ ํ๋๋ฐ ์์ง ์๊ธฐ๊ฐ ๋ ๋ ๊ฒ ๊ฐ๋ค.. ใ ใ
728x90