Advertisement
Naxocist

CableCar

May 17th, 2022
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.08 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define INF 2e9
  5.  
  6. using tiii = tuple<int, int, int>;
  7. using pi = pair<int, int>;
  8. using ll = long long;
  9.  
  10. const int N = 2505;
  11.  
  12. vector<tiii> edge;
  13. int dsu[N];
  14.  
  15. int par(int u){
  16.     return (dsu[u] == u ? u : dsu[u] = par(dsu[u]));
  17. }
  18.  
  19. void un(int u, int v){
  20.     int x = par(u), y = par(v);
  21.     dsu[x] = y;
  22. }
  23.  
  24.  
  25. int main(){
  26.     cin.tie(nullptr)->sync_with_stdio(false);
  27.  
  28.     // freopen("input.txt", "r", stdin);
  29.     int n, m; cin >> n >> m;
  30.  
  31.     for(int i=1; i<=n; ++i) dsu[i] = i;
  32.  
  33.    
  34.     for(int i=0; i<m; ++i){
  35.         int u, v, w;
  36.         cin >> u >> v >> w;
  37.         edge.emplace_back(w, u, v);
  38.     }
  39.     int s, d, p; cin >> s >> d >> p;
  40.  
  41.     sort(edge.begin(), edge.end(), greater<tiii>());
  42.  
  43.     int bt = 1e9;
  44.     for(auto e : edge){
  45.         int u, v, w;
  46.         tie(w, u, v) = e;
  47.  
  48.         if(par(u) != par(v)){
  49.             un(u, v);
  50.             if(par(s) == par(d)){
  51.                 bt = w-1;
  52.                 break;
  53.             }
  54.         }  
  55.     }
  56.  
  57.     cout << ceil((double) p / bt);
  58.     return 0;
  59. }
  60.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement