MAGCARI

Royal Parade

Nov 23rd, 2022
667
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.93 KB | None | 0 0
  1. /*
  2.     Task    : _example
  3.     Author  : Phumipat C. [MAGCARI]
  4.     Language: C++
  5.     Created : 23 November 2022 [19:57]
  6. */
  7. #include<bits/stdc++.h>
  8. using namespace std;
  9. struct A{
  10.     int node,weight;
  11. };
  12. vector<A > g[100010];
  13. struct B{
  14.     int currentNode;
  15.     long long sumWeight;
  16.     bool operator < (const B&o) const{
  17.         return sumWeight > o.sumWeight;
  18.     }
  19. };
  20. priority_queue<B > heap;
  21. long long dis1[100010];
  22. int main(){
  23.     int n,m,u,v,w,a,b,c,d;
  24.     scanf("%d %d",&n,&m);
  25.     for(int i=1;i<=m;i++){
  26.         scanf("%d %d %d",&u,&v,&w);
  27.         g[u].push_back({v,w});
  28.         g[v].push_back({u,w});
  29.     }
  30.     scanf("%d %d %d %d",&a,&b,&c,&d);
  31.     for(int i=1;i<=n;i++)
  32.         dis1[i] = 1e18;
  33.     dis1[a] = 0;
  34.     heap.push({a,0});
  35.     while(!heap.empty()){
  36.         B now = heap.top();
  37.         heap.pop();
  38.         for(auto x:g[now.currentNode]){
  39.             if(dis1[x.node] > dis1[now.currentNode] + x.weight){
  40.                 dis1[x.node] = dis1[now.currentNode] + x.weight;
  41.                 heap.push({x.node,dis1[x.node]});
  42.             }
  43.         }
  44.     }
  45.     long long shortest = dis1[b];
  46.     return 0;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment