#include <stdio.h>int dist[35][35] = { 0 };int fw[35][35] = { 0 };int main() {// 입력 모두 받음int nd, st, end;scanf("%d %d %d", &nd, &st, &end);for (int i = 1; i <= nd; i++)for (int j = 1; j <= nd; j++) {scanf("%d", &dist[i][j]);fw[i][j] = dist[i][j];}//플로이드워셜 배열 작성 시작for (int k = 1; k <= nd; k++)for (int i = 1; i <= nd; i++)for (int j = 1; j <= nd; j++)if (fw[i][k] + fw[k][j] < fw[i][j])fw[i][j] = fw[i][k] + fw[k][j];//최종값 출력printf("%d", fw[st][end]);}
'알고리즘 > 플로이드 워셜' 카테고리의 다른 글
2606 바이러스 (0) | 2019.08.27 |
---|---|
1965 상자넣기 (오답, LIS 접근 필요) (0) | 2019.05.09 |
2660 회장뽑기 (0) | 2019.05.09 |