Submission #1258979

#TimeUsernameProblemLanguageResultExecution timeMemory
1258979islam_2010Toll (BOI17_toll)C++20
0 / 100
3095 ms3388 KiB
#include <bits/stdc++.h> using namespace std; const int sz = 5e4+5; const int inf = 1e9+7; vector<pair<int, int>> g[sz]; vector<int> dis(sz, inf); void dijkstra(int node){ dis[node] = 0; priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> q; q.push({0, node}); while(!q.empty()){ auto [d, curr] = q.top(); q.pop(); for(auto [v, w]: g[curr]){ if(dis[v] > dis[curr] + w){ dis[v] = dis[curr] + w; q.push({dis[v], v}); } } } } signed main(){ int k, n, m, q; cin >> k >> n >> m >> q; for(int i = 0; i < m; i++){ int u, v, w; cin >> u >> v >> w; g[u].push_back({v, w}); } while (q--){ int u, v; cin >> u >> v; dis[u] = 0; dijkstra(u); if(dis[v] == inf){ cout << -1 << endl; }else { cout << dis[v] << endl; } for(int i = u; i <= v; i++){ dis[i] = inf; } } }
#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...