반응형

 

<코드>

#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;
}



 

 

 

www.acmicpc.net/problem/1956

 

1956번: 운동

첫째 줄에 V와 E가 빈칸을 사이에 두고 주어진다. (2 ≤ V ≤ 400, 0 ≤ E ≤ V(V-1)) 다음 E개의 줄에는 각각 세 개의 정수 a, b, c가 주어진다. a번 마을에서 b번 마을로 가는 거리가 c인 도로가 있다는 의

www.acmicpc.net

 

반응형

+ Recent posts