🧩PS/🥈Nomal
[C/C++] 백준 1956번 - 운동 (플로이드 와샬)
Cocoon_
2021. 3. 3. 05:37
반응형
<코드>
#include <iostream>
#include <algorithm>
using namespace std;
#define INF 2000000000 // 20억
int V, E;
int a, b, c;
long long map[401][401];
long long ans = INF;
int main()
{
cin >> V >> E;
for (int i = 1; i <= V; i++)
for (int j = 1; j <= V; j++)
map[i][j] = INF;
for (int i = 0; i < E; i++)
{
cin >> a >> b >> c;
map[a][b] = c;
}
for (int k = 1; k <= V; k++)
for (int i = 1; i <= V; i++)
for (int j = 1; j <= V; j++)
if(map[i][k] > 0 && map[k][j] > 0)
if (map[i][j] > map[i][k] + map[k][j])
map[i][j] = map[i][k] + map[k][j];
for (int i = 1; i <= V; i++)
ans = min(ans, map[i][i]);
if (ans == INF) cout << -1;
else cout << ans;
}
1956번: 운동
첫째 줄에 V와 E가 빈칸을 사이에 두고 주어진다. (2 ≤ V ≤ 400, 0 ≤ E ≤ V(V-1)) 다음 E개의 줄에는 각각 세 개의 정수 a, b, c가 주어진다. a번 마을에서 b번 마을로 가는 거리가 c인 도로가 있다는 의
www.acmicpc.net
반응형