Submission
Status:
(-SSSSSSSS)(SSSS)(-SSSSS)(SSSSSSSSSS)
Subtask/Task Score:
{0/25}{0/25}{0/20}{0/30}
Score: 0
User: SparkPun
Problemset: เดินทางข้ามชุมชน
Language: cpp
Time: 0.004 second
Submitted On: 2026-03-22 16:34:39
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+10;
vector<pair<int,int>>adj[N];
bool flag[N];
bool check(int start,int end,int k){
for(int i=0;i<N;i++){
flag[i]=0;
}
queue<int>q;
flag[start]=1;
q.push(start);
while(!q.empty()){
int u=q.front();q.pop();
for(auto [v,w]:adj[u]){
if(flag[v] || w>k) continue;
flag[v]=1;
q.push(v);
}
}
return flag[end];
}
int main(){
ios_base::sync_with_stdio(0),cin.tie(0);
int n,m,q;
cin >> n >> m >> q;
while(m--){
int u,v,w;
cin >> u >> v >> w;
adj[u].push_back({v,w});
adj[v].push_back({u,w});
}
while(q--){
int a,b,k;
cin >> a >> b >> k;
if(check(a,b,k)) cout << "YES" << endl;
else cout << "NO" << endl;
}
}