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;
    }
}