Submission
Status:
(-SSSSSSSS)(SSSS)(-SSSSS)(SSSSSSSSSS)
Subtask/Task Score:
{0/25}{0/25}{0/20}{0/30}
Score: 0
User: kittipos
Problemset: เดินทางข้ามชุมชน
Language: cpp
Time: 0.003 second
Submitted On: 2026-03-10 22:21:48
#include <bits/stdc++.h>
using namespace std;
vector<vector<pair<int, int>>> graph; // destination and distance
vector<bool> visited;
bool dfs(int cur, int des, int max_weight) {
if (cur == des) return true;
if (visited[cur]) return false;
// cout << "cur: " << cur << endl;
visited[cur] = true;
for (int i = 0; i < graph[cur].size(); i++) {
if (graph[cur][i].second > max_weight) continue;
bool res = dfs(graph[cur][i].first, des, max_weight);
if (res) return true;
}
return false;
}
int main() {
int n, m, q;
cin >> n >> m >> q;
graph.assign(n, vector<pair<int, int>>());
for (int i = 0; i < m; i++) {
int a, b, c;
cin >> a >> b >> c;
// a--; b--;
graph[a].push_back({b, c});
graph[b].push_back({a, c});
}
for (int i = 0; i < q; i++) {
int a, b, k;
cin >> a >> b >> k;
visited.assign(n, false);
bool res = dfs(a, b, k);
if (res) {
cout << "YES\n";
} else {
cout << "NO\n";
}
}
}