제출 #124569

#제출 시각아이디문제언어결과실행 시간메모리
124569NMAC427관광 (NOI14_sightseeing)C++17
15 / 25
3544 ms141652 KiB
// https://oj.uz/problem/view/NOI14_sightseeing #include <bits/stdc++.h> #define int int32_t #define coutV(x) for (const auto& e: x) {cerr << e << " ";} cerr << "\n" using namespace std; int V, E, Q; vector<vector<pair<int, int>>> adj; signed main() { #ifndef __APPLE__ cin.tie(0); ios_base::sync_with_stdio(0); #endif cin >> V >> E >> Q; adj.resize(V); for (int i = 0; i < E; i++) { int v1, v2, q; cin >> v1 >> v2 >> q; adj[v1 - 1].emplace_back(v2 - 1, q); adj[v2 - 1].emplace_back(v1 - 1, q); } // Dijkstra vector<int> visited (V, -1); priority_queue<pair<int, int>> pq; pq.push({INT32_MAX, 0}); while (!pq.empty()) { auto top = pq.top(); pq.pop(); int v = top.second; int pathQ = top.first; if (visited[v] != -1 && visited[v] > pathQ) { continue; } visited[v] = pathQ; for (const auto& child: adj[v]) { int childQ = min(child.second, pathQ); if (visited[child.first] != -1 && visited[child.first] >= childQ) continue; visited[child.first] = childQ; pq.push({childQ, child.first}); } } for (int i = 0; i < Q; i++) { int x; cin >> x; cout << visited[x - 1] << "\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...