페이지

1922번: 네트워크 연결 - 코드 수정 필요

https://www.acmicpc.net/problem/1922


#include<stdio.h>
#include<queue>
#include<vector>
#include<algorithm>
using namespace std;
const int MAX_N = 1e3;
int n, m, res;
vector<pair<intint> > adj[MAX_N + 1];
bool ck[MAX_N + 1];
int main() {
    scanf("%d %d", &n, &m);
    for (int i = 0, a, b, c; i < m; i++) {
        scanf("%d %d %d", &a, &b, &c);
        adj[a].push_back({ b,c });
        adj[b].push_back({ a,c });
    }
    priority_queue<pair<intint> > pq;
    pq.push({ 0,1 });
    while (!pq.empty()) {
        int h = pq.top().second, dis = -pq.top().first;
        pq.pop();
        if (ck[h]) continue;
        ck[h] = true;
        res += dis;
        for (auto it : adj[h]) pq.push({ -it.second,it.first });
    }
    printf("%d", res);
    return 0;
}

댓글 없음 :

댓글 쓰기