반응형
https://www.acmicpc.net/problem/10423
10423번: 전기가 부족해
첫째 줄에는 도시의 개수 N(1 ≤ N ≤ 1,000)과 설치 가능한 케이블의 수 M(1 ≤ M ≤ 100,000)개, 발전소의 개수 K(1 ≤ K ≤ N)개가 주어진다. 둘째 줄에는 발전소가 설치된 도시의 번호가 주어진다. 셋째
www.acmicpc.net
#include <bits/stdc++.h>
using namespace std;
vector<char> elec;
vector<pair<int, int> > graph[1001];
struct Edge {
int x, val;
bool operator<(const Edge& b) const {
return val > b.val;
}
};
bool vis[1001];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int n, m, k;
cin >> n >> m >> k;
priority_queue<Edge> Q;
for (int i = 0; i < k; i++) {
int c;
cin >> c;
Q.push({ c,0 });
}
for (int i = 0; i < m; i++) {
int a, b, c;
cin >> a >> b >> c;
graph[a].push_back({ b,c });
graph[b].push_back({ a,c });
}
int ans = 0;
while (!Q.empty()) {
int x = Q.top().x;
int val = Q.top().val;
Q.pop();
if (vis[x] == 0) {
vis[x] = 1;
ans += val;
for (int i = 0; i < graph[x].size(); i++) {
int nx = graph[x][i].first;
int nd = graph[x][i].second;
if (vis[nx] == 0) {
Q.push({ nx,nd });
}
}
}
}
cout << ans << '\n';
return 0;
}
반응형
'Algorithm > problem' 카테고리의 다른 글
백준 12094번: 2048 (EASY) (0) | 2022.02.19 |
---|---|
백준 12094번 : 2048 (Hard) C++ 문제풀이코드 (0) | 2022.02.19 |
백준 1774번 : 우주신과의 교감 - 크루스칼 MST C++ (0) | 2022.02.18 |
백준 17472 다리만들기 2 - 최소스패닝트리(크루스칼) , BFS , C++ (0) | 2022.02.18 |
백준 2887번 : 행성 터널 - 크루스칼 (0) | 2022.02.18 |