Submission #1312038

#TimeUsernameProblemLanguageResultExecution timeMemory
1312038shebDrivers (BOI24_drivers)C++20
0 / 100
1 ms572 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]; for (int i = 0; i < e; i++) { int a, b, k;cin>>a>>b>>k;a--,b--; M[a].push_back(make_pair(b, k)); M[b].push_back(make_pair(a, k)); } vector<string> ANS; for (int i = 0; i < q; i++) { int a, b, k;cin>>a>>b>>k;a--,b--; vector<int> D(n, LLONG_MAX);D[a]=0; priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> PQ;PQ.emplace(0,a); while (!PQ.empty()) { pair<int, int> top = PQ.top();PQ.pop(); if (top.first > D[top.second]) continue; for (pair<int, int> &p: M[top.second]) { if (D[top.second] + p.second < D[p.first]) { D[p.first] = D[top.second] + p.second; PQ.emplace(D[p.first], p.first); } } } ANS.push_back((D[b] <= k)? 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...