Untitled

 avatar
unknown
plain_text
24 days ago
1.2 kB
7
Indexable
// ThonqRiu
#include <bits/stdc++.h>
#define endl '\n'
#define maxn 50005
#define MOD 100000000000007
#define Task "bai1"
#define ll long long
using namespace std;
int n,m,root[505],cnt;
struct phuba{
    int u,v,w;
};
phuba a[maxn];
bool cmp(phuba &a, phuba &b){
    return a.w < b.w;
}
int getRoot(int u){
    if(root[u] == 0) return u;
    return(root[u] = getRoot(root[u]));
}
int main()
{
    ios_base:: sync_with_stdio(0);
    cin.tie(nullptr);
    if(fopen(Task".inp","r")){
        freopen(Task".inp","r",stdin);
    }
    cin >> n >> m;
    for(int k = 1; k<=m; k++){
        cin >> a[++cnt].u >> a[cnt].v >> a[cnt].w;
        sort(a+1,a+cnt+1,cmp);
        fill(root+1,root+n+1,0);
        int ans = 0; cnt = 0;
        for(int i = 1; i<=n; i++){
            int p = getRoot(a[i].u);
            int q = getRoot(a[i].v);
            if(p != q){
                root[p] = q;
                ans += a[i].w;
                cnt++;
                a[cnt].u = a[i].u; a[cnt].v = a[i].v; a[cnt].w = a[i].w;
            }
        }
        if(cnt == n-1) cout << ans << endl; else cout << -1 << endl;
    }

}
Leave a Comment