Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long int ll;
- //#define isvowel(a) (a == 'a' || a == 'e' || a == 'i' || a == 'o' || a == 'u')
- #define pb push_back
- #define mp make_pair
- #define fi first
- #define se second
- #define gcd __gcd
- #define getl(s) getline(cin, s);
- #define setpre(x) fixed << setprecision(x)
- #define mset(a) memset(a, 0, sizeof(a))
- #define endl '\n'
- const int N=200050,M=1000000007;
- const ll INF=1e18+7;
- int cha[N],cha_size[N];
- int find_cha(int u){
- if(cha[u]==u) return u;
- return cha[u]=find_cha(cha[u]);
- }
- void European_Union(int u,int v){
- int a,b;
- a=find_cha(u);
- b=find_cha(v);
- if(cha_size[a]<cha_size[b]) swap(a,b);
- cha[b]=a;
- cha_size[a]+=cha_size[b];
- return;
- }
- int main(){
- ios_base::sync_with_stdio(NULL); cin.tie(nullptr); cout.tie(nullptr);
- // freopen(".inp","r",stdin);
- // freopen(".out","w",stdout);
- int n,m,x,y,z;
- ll sum=0;
- vector<pair<int,pair<int,int> > >gay;
- cin>>n>>m;
- for(int i=1;i<=n;++i){
- cha[i]=i;
- cha_size[i]=1;
- }
- for(int i=0;i<m;++i){
- cin>>x>>y>>z;
- gay.pb(mp(z,mp(x,y)));
- }
- sort(gay.begin(),gay.end());
- for(int i=0;i<m;++i){
- x=gay[i].se.fi;
- y=gay[i].se.se;
- z=gay[i].fi;
- if(find_cha(x)!=find_cha(y)){
- European_Union(x,y);
- sum+=z;
- }
- }
- cout<<sum;
- return 0;
- }
- /*
- ==================================+
- INPUT: |
- ------------------------------ |
- ------------------------------ |
- ==================================+
- OUTPUT: |
- ------------------------------ |
- ------------------------------ |
- ==================================+
- */
Advertisement
RAW Paste Data
Copied
Advertisement