ll a[1d5], b[1d5], c[1d5]; bool flag[1d5]; { int @n,@m,@k; rd((a--,b--,c)(m)); unionFind uf; uf.malloc(n); uf.init(); rep(k){ int @x;x--; uf(a[x],b[x]); c[x]=0; } sortA(m,c,a,b); rep(i,m){ if(c[i]&&uf(a[i])!=uf(b[i])){ uf(a[i],b[i]); c[i]=0; } } ll ans=0; ans+=c[0..m-1]; wt(ans); }