fork download
  1. #include <bits/stdc++.h>
  2. #define ll long long
  3. #define ld long double
  4. #define IO ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0);
  5. using namespace std;
  6. const int N = 1e5 + 5, M = 2 * N + 5;
  7.  
  8. int n, m,s,l,k;
  9. vector<pair<int,int> > adj[N];
  10.  
  11. int lev[N],mx=0;
  12.  
  13. void bfs(int st){
  14. queue<int> q;
  15. q.push(st);
  16. lev[st] = 1;
  17. while(q.size()){
  18. int sz = q.size();
  19. while(sz--){
  20. int u = q.front();
  21. // cout<<u<<" "<<adj[u].size()<<endl;
  22. q.pop();
  23. for(auto v : adj[u])
  24. {
  25. if(lev[v.first]<=k)
  26. mx=max(v.second,mx);
  27. if(!lev[v.first])
  28. q.emplace(v.first), lev[v.first] = lev[u] + 1;
  29. }
  30. }
  31. }
  32. }
  33.  
  34. int main(){
  35. IO;
  36. int t;
  37. cin>>t;
  38. while(t--)
  39. {
  40. mx=0;
  41. for(int i=0;i<n;i++)
  42. {
  43. adj[i].clear();
  44. lev[N]=0;
  45. }
  46. cin>>n>>m>>s>>l>>k;
  47. for(int i = 0 ; i < m ; ++i){
  48. int u, v, w;
  49. cin>>u>>v>>w;
  50. adj[u].emplace_back(v,w);
  51. adj[v].emplace_back(u,w);
  52. }
  53. // for(int i = 0 ; i <= m ; ++i){
  54. // cout<<i<<" :";
  55. // for(auto v: adj[i])
  56. // cout<<v.first<<" ";
  57. // cout<<endl;
  58. // }
  59. bfs(s);
  60.  
  61. cout<<mx<<endl;
  62. }
  63. }
  64.  
Success #stdin #stdout 0s 6024KB
stdin
Standard input is empty
stdout
0
0