#include <bits/stdc++.h>
using namespace std;
#define int long long
const string yes = "TAIP";
const string no = "NE";
int32_t main() {
int n, e, q;cin>>n>>e>>q;
vector<pair<int, int>> M[n+1];
for (int i = 0; i < e; i++) {
int a, b, t;cin>>a>>b>>t;
M[a].push_back(make_pair(b, t));
M[b].push_back(make_pair(a, t));
}
vector<string> ANS;
for (int i = 0; i < q; i++) {
int a, b, k;cin>>a>>b>>k;
set<int> V;
function<void(int, int, int)> search = [&V, &M, &search](int a, int b, int k) {
V.insert(a);
for (auto it = M[a].begin(); it != M[a].end(); it++) {
if (
it->second > k or
V.find(it->first) != V.end()
) continue;
search(it->first, b, k);
}
};
search(a, b, k);
ANS.push_back((*V.rbegin() == b)? yes: no);
}
for (string s: ANS)
cout << s << '\n';
return 0;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |