Submission
Status:
(PPPPPPPPP)(PPPP)(PPxSSS)(SSSSSSSSSS)
Subtask/Task Score:
{25/25}{25/25}{0/20}{0/30}
Score: 50
User: hmmm
Problemset: เดินทางข้ามชุมชน
Language: cpp
Time: 0.134 second
Submitted On: 2025-06-24 11:15:31
#include<bits/stdc++.h>
using namespace std;
using pii=array<int,4>;
const int N=1e5+5;
vector<pii> p;
int pa[N],ans[N];
inline int find(int v){
if(pa[v]==v) return v;
return pa[v]=find(pa[v]);
}
inline void U(int a,int b){
a=find(a);
b=find(b);
if(a!=b) pa[b]=a;
}
int main(){
ios::sync_with_stdio(0); cin.tie(0);
int n,m,k;
cin >> n >> m >> k;
for(int i=0;i<=n;i++) pa[i]=i;
for(int i=1;i<=m;i++){
int u,v,w;
cin >> u >> v >> w;
p.push_back({w,-1,u,v});
}
for(int i=1;i<=k;i++){
int u,v,w;
cin >> u >> v >> w;
p.push_back({w,i,u,v});
}
sort(p.begin(),p.end());
for(auto e:p){
auto u=e[2];
auto v=e[3];
auto w=e[0];
auto i=e[1];
// cout << u << ' ' << v << ' ' << w << ' ' << i << "\n";
if(i==-1){
U(u,v);
}
else{
if(find(u)==find(v)) ans[i]=true;
else ans[i]=false;
}
}
for(int i=1;i<=k;i++){
if(ans[i]) cout << "Yes\n";
else cout << "No\n";
}
}