SuitNdtie

Journey TASK_154 PostPOSN2

Mar 28th, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.91 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<vector>
  3. #include<queue>
  4. using namespace std;
  5. typedef long long int ll;
  6. typedef pair<int,int> pii;
  7.  
  8. int main()
  9. {
  10.     int n,m;
  11.     ll k;
  12.     scanf("%d %d %lld",&n,&m,&k);
  13.     int ans;
  14.     vector<pii> adj[n+1];
  15.     for(int i=0;i<m;i++){
  16.         int u,v;
  17.         ll w;
  18.         scanf("%d %d %lld",&u,&v,&w);
  19.         adj[u].push_back({w,v});
  20.         adj[v].push_back({w,u});
  21.     }
  22.     ll dist[n+1];for(int i=0;i<=n;i++)dist[i] = 2e18;
  23.     bool visited[n+1];for(int i=0;i<=n;i++)visited[i] = false;
  24.    
  25.     queue<int> q;
  26.     q.push(1);
  27.     dist[1] = 0;
  28.    
  29.     while(!q.empty()){
  30.         int u = q.front();
  31.         q.pop();
  32.         if(visited[u])continue;
  33.         visited[u] = true;
  34.         for(int i=0;i<adj[u].size();i++)
  35.         {
  36.             int v = adj[u][i].second;
  37.             ll w = adj[u][i].first;
  38.             if(!visited[v] && dist[u] + w < dist[v]){
  39.                 dist[v] = dist[u] + w;
  40.                 q.push(v);
  41.             }
  42.         }
  43.     }
  44.     for(int i=1;i<=n;i++){
  45.         if(dist[i] <= k){
  46.             ans = i;
  47.         }
  48.     }
  49.     printf("%d",ans);
  50. }
Advertisement
Add Comment
Please, Sign In to add comment