Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define maxm 3001
- #define pii pair<int, int>
- #define vii vector<pii>
- #define pb push_back
- #define mp make_pair
- using namespace std;
- int n, m, x, y, r, start, cost;
- vector<int> vis(maxm);
- vector<pii> g[maxm];
- // Complete the prims function below.
- void prims() {
- priority_queue<pii, vii, greater<pii> > pq;
- pq.push(mp(0, start));
- while(!pq.empty()){
- int x = pq.top().second;
- int c = pq.top().first;
- pq.pop();
- if(vis[x])
- continue;
- vis[x] = 1;
- cost += c;
- for(int i=0; i<g[x].size(); ++i)
- if(!vis[g[x][i].second])
- pq.push(g[x][i]);
- }
- cout<<cost;
- }
- int main()
- {
- ios_base::sync_with_stdio(false);
- cin>>n>>m;
- for(int i=0; i<m; ++i){
- cin>>x>>y>>r;
- g[x].pb(mp(r, y));
- g[y].pb(mp(r, x));
- }
- cin>>start;
- prims();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement