Submission #599532

#TimeUsernameProblemLanguageResultExecution timeMemory
599532pedroslreyToll (BOI17_toll)C++17
10 / 100
55 ms6712 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 5e4 + 10; vector<pair<int, int>> graph[MAXN]; int dist[MAXN]; bool marc[MAXN]; void dijkstra(int n) { for (int i = 1; i < n; ++i) dist[i] = 1e9; set<pair<int, int>> s; s.emplace(0, 0); while (!s.empty()) { int u = s.begin()->second; s.erase(s.begin()); if (marc[u]) continue; marc[u] = true; for (auto [v, c]: graph[u]) { int d = dist[u] + c; if (dist[v] > d) { dist[v] = d; s.emplace(d, v); } } } } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n, q, m, k; cin >> k >> n >> m >> q; for (int i = 0; i < m; ++i) { int u, v, t; cin >> u >> v >> t; graph[u].emplace_back(v, t); } dijkstra(n); for (int i = 0; i < q; ++i) { int a, b; cin >> a >> b; if (marc[b]) cout << dist[b] << "\n"; else cout << "-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...
#Verdict Execution timeMemoryGrader output
Fetching results...