Submission #1312045

#TimeUsernameProblemLanguageResultExecution timeMemory
1312045shebDrivers (BOI24_drivers)C++20
0 / 100
2096 ms1892 KiB
#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;
        bool done = false;
        function<void(int, int, int)> search = [&done, &V, &M, &search](int a, int b, int k) {
            if (a == b) {done = true; return;}
            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((done)? yes: no);
    }
    for (string &s: ANS)
        cout << s << '\n';
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...