Submission #1231054

#TimeUsernameProblemLanguageResultExecution timeMemory
1231054ThommyDBDrivers (BOI24_drivers)C++20
0 / 100
2116 ms784268 KiB
#include<bits/stdc++.h>

using namespace std;
#define int long long

const int INF = 1e16;

int n, m, u;
vector<vector<pair<int, int>>> adj;

signed main(){
    cin >> n >> m >> u;
    adj.resize(n);
    for(int i = 0; i < m; i++){
        int a, b, t;
        cin >> a >> b >> t; a--; b--;
        adj[a].push_back({b, t});
        adj[b].push_back({a, t});
    }
    vector<vector<int>> ans(n, vector<int>(n, INF));

    for(int i = 0; i < n; i++){
        vector<int> dist(n, INF);
        vector<bool> visited(n, false);
        priority_queue<pair<int, int>> q;
        q.push({0, i});
        dist[i]=0;
        while(!q.empty()){
            int x = q.top().second;
            q.pop();
            if(visited[x])continue;
            visited[x]=true;
            for(auto u : adj[x]){
                if(max(dist[x], u.second) < dist[u.first]){
                    dist[u.first] = max(dist[x], u.second);
                    ans[i][u.first]=dist[u.first];
                    ans[u.first][i]=dist[u.first];
                    q.push({-dist[u.first], u.first});
                }
            }
        }
    }

    for(int o = 0; o < u; o++){
        int a, b, p;
        cin >> a >> b >> p; a--; b--;        
        if(ans[a][b] <= p){
            cout << "TAIP\n";
        }
        else{
            cout << "NE\n";
        }
    }
}
#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...