https://codeforces.com/problemset/problem/707/B
Problem - 707B - Codeforces
codeforces.com
#include <bits/stdc++.h>
using namespace std;
long long D[100005][3];
int F[100005] = {0}; // storage의 위치 정보
int main()
{
int i, n, m, k, f;
long long ans;
// n은 city의 개수, m은 road의 개수, k는 storage의 개수
cin >> n >> m >> k;
int u, v, l;
for (i = 0; i < m; i++) {
cin >> u >> v >> l;
D[i][0] = u; // city 1
D[i][1] = v; // city 2
D[i][2] = l; // distance
}
for (i = 0; i < k; i++) {
cin >> f;
F[f] = 1;
}
ans = 2000000000;
for (i = 0; i < m; i++) {
if (F[D[i][0]] + F[D[i][1]] == 1) {
ans = min(ans, D[i][2]);
}
}
if (ans == 2000000000) {
cout << "-1" << endl;
}
else {
cout << ans << endl;
}
return 0;
}

'Algorithm Study > c++' 카테고리의 다른 글
| [C++] Dijkstra Algorithm / codeforces-449-B (1) | 2023.06.13 |
|---|---|
| [C++] Dijkstra(다익스트라 알고리즘) / codeforces-20-C (1) | 2023.06.10 |
| [C++] DFS / codeforces-217-A (1) | 2023.06.10 |
| [C++] DFS(Depth-First Search) vs BFS(Breath-First Search) (1) | 2023.06.10 |
| [C++] queue 사용 & 예제 (0) | 2023.06.09 |