Advertisement
YEZAELP

SMMR-154: Journey

Jun 7th, 2020
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.07 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int INF=2e9;
  4. using pii=pair<long long,int>;
  5. int main(){
  6.     int n,m,k;
  7.     scanf("%d %d %d",&n,&m,&k);
  8.     priority_queue <pii,vector<pii>,greater<pii> > pq;
  9.     vector <pii> g[n+1];
  10.     vector <bool> visited(n+1,false);
  11.     vector <long long> dis(n+1,INF);
  12.     for(int i=0;i<m;i++){
  13.         int u,v;
  14.         long long w;
  15.         scanf("%d %d %d",&u,&v,&w);
  16.         g[u].push_back({v,w});
  17.         g[v].push_back({u,w});
  18.     }
  19.     dis[1] = 0;
  20.     pq.push({dis[1],1});
  21.     while(!pq.empty()){
  22.         int u=pq.top().second,d=pq.top().first;
  23.         pq.pop();
  24.         //if(visited[u]) continue;
  25.         visited[u]=true;
  26.  
  27.         for(auto vw:g[u]){
  28.             int v,w;
  29.             v=vw.first;
  30.             w=vw.second;
  31.             if(visited[v]==false && dis[u]+w < dis[v]){
  32.                 dis[v] = dis[u] + w;
  33.                 pq.push({dis[v],v});
  34.             }
  35.         }
  36.     }
  37.     for(int i=n;i>=1;i--){
  38.         if(dis[i]<=k){
  39.             printf("%d",i);
  40.             break;
  41.         }
  42.     }
  43.     return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement