Notice
Recent Posts
문제 풀이 및 개발 공간
[백준] 14938번 서강그라운드 (gold 4 본문
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[]args) throws IOException{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st=new StringTokenizer(br.readLine());
int n=Integer.valueOf(st.nextToken());
int m=Integer.valueOf(st.nextToken());
int r=Integer.valueOf(st.nextToken());
int[] item=new int[n+1];
st=new StringTokenizer(br.readLine());
for(int i=1; i<=n; i++){
item[i]=Integer.valueOf(st.nextToken());
}
int[][] map=new int[n+1][n+1];
for(int i=1; i<=n; i++){
Arrays.fill(map[i],100);
}
for(int i=0; i<r; i++){
st=new StringTokenizer(br.readLine());
int a=Integer.valueOf(st.nextToken());
int b=Integer.valueOf(st.nextToken());
int c=Integer.valueOf(st.nextToken());
map[a][b]=c;
map[b][a]=c;
}
for(int k=1; k<=n; k++){
for(int i=1; i<=n; i++){
for(int j=1; j<=n; j++){
if(i==j || map[i][k]==100 || map[k][j]==100){
continue;
}
map[i][j]=Math.min(map[i][j], map[i][k]+map[k][j]);
}
}
}
int answer=0;
for(int i=1; i<=n; i++){
int temp=item[i];
for(int j=1; j<=n; j++){
if(j!=i && map[i][j]<=m){
temp+=item[j];
}
}
answer= Math.max(temp,answer);
}
bw.write(answer+"");
bw.flush();
}
}
'백준공부 > java' 카테고리의 다른 글
[백준] 15686번 치킨 배달 (gold 5 (0) | 2023.10.13 |
---|---|
[백준] 6571번 피보나치 수의 개수 (silver 3 (0) | 2023.10.13 |
[백준] 15654번 N과 M (5) (silver 3 (0) | 2023.10.12 |
[백준] 1932번 정수 삼각형 (silver 1 (0) | 2023.10.12 |
[백준] 11404번 플로이드 (gold 4 (0) | 2023.10.12 |