문제
https://www.acmicpc.net/problem/14938
코드
import sys
input=sys.stdin.readline
INF=sys.maxsize
n,m,r=map(int, input().split())
item=list(map(int, input().split()))
graph=[[INF]*(n+1) for _ in range(n+1)]
for i in range(n+1):
for j in range(n+1):
if i==j:
graph[i][i]=0
for _ in range(r):
a,b,c=map(int, input().split())
graph[a][b]=c
graph[b][a]=c
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][j],graph[i][k]+graph[k][j])
result=0
for i in range(1,n+1):
temp=0
for j in range(1,n+1):
if graph[i][j]<=m:
temp+=item[j-1]
result=max(result,temp)
print(result)
'문제풀이 > 최단경로' 카테고리의 다른 글
[파이썬] [최단경로] 백준 9370 미확인 도착지 (0) | 2022.03.27 |
---|---|
[파이썬] [최단경로] 백준 1956 운동 (0) | 2022.02.26 |
[파이썬] [최단경로] 백준 1504 특정한 최단 경로 (0) | 2022.02.26 |
[파이썬] [최단경로] 백준 11657 타임머신 (0) | 2022.02.09 |
[파이썬] [최단경로] 벨먼포드 (0) | 2022.02.09 |