Advertisement
Alickon

Untitled

Jun 12th, 2025
525
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.73 KB | None | 0 0
  1. //Bismillahir-Rahmanir-Rahim
  2. #include <bits/stdc++.h>
  3.              
  4. using namespace std;
  5.          
  6. #define flash ios_base::sync_with_stdio(0),cin.tie(0)
  7. #define pb push_back
  8. #define ll long long
  9. #define ld long double
  10. #define dbg(x) cerr << #x << " = " << x << "\n";
  11. #define ff first
  12. #define ss second
  13. // #define int long long
  14.      
  15. /*
  16. #pragma GCC target ("avx2")
  17. #pragma GCC optimization ("O3")
  18. #pragma comment (linker, "/stack:200000000")
  19. #pragma GCC optimize("Ofast")
  20. #pragma GCC target ("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
  21. */
  22.      
  23. const long long INF = 1e9 + 7;
  24. const long long MOD = 1e9 + 7;
  25. const int maxn = 1e6 + 10;
  26. const int lg = 20;
  27.  
  28. int n, p[maxn], m, ans;
  29. vector <pair <int, pair <int, int>> > lst;
  30.  
  31. int get(int v) {
  32.     if (v == p[v]) {
  33.         return v;
  34.     }
  35.     p[v] = get(p[v]);
  36.     return p[v];
  37. }
  38.  
  39. void merge(int v, int u) {
  40.     int pv = get(v);
  41.     int pu = get(u);
  42.     if (pv != pu) {
  43.         p[pu] = pv;
  44.     }
  45. }
  46.  
  47. void press_F_() {
  48.     cin >> n >> m;
  49.     for (int i = 1; i <= n; i++) {
  50.         p[i] = i;
  51.     }
  52.     for (int i = 1; i <= m; i++) {
  53.         int a, b, c;
  54.         cin >> a >> b >> c;
  55.         lst.pb({c, {a, b}});
  56.     }
  57.     sort(lst.begin(), lst.end());
  58.     for (int i = 0; i < lst.size(); i++) {
  59.         int a, b, c;
  60.         c = lst[i].ff;
  61.         a = lst[i].ss.ff;
  62.         b = lst[i].ss.ss;
  63.         if (get(a) != get(b)) {
  64.             ans += c;
  65.             // cout << a << " " << b << " " << c << '\n';
  66.             merge(a, b);
  67.         }
  68.     }
  69.     cout << ans;
  70. }
  71.  
  72. int main() {
  73.     flash;
  74.     int T = 1;
  75.     // cin >> T;
  76.     for (int _ = 1; _ <= T; ++_) {
  77.         // cout << "Case " << i << ": ";
  78.         press_F_();
  79.     }
  80.     return 0;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement