Submission #1307217

#TimeUsernameProblemLanguageResultExecution timeMemory
1307217kaloyanToll (BOI17_toll)C++20
100 / 100
1984 ms4620 KiB
#include <iostream> #include <algorithm> #include <vector> #include <queue> const int MAXN = 50000 + 10; const int INF = 1e9 + 10; int k, n, m, q; int dp[MAXN]; std::vector<std::pair<int, int>> g[MAXN]; void solve() { std::cin >> k >> n >> m >> q; for(int i = 1 ; i <= m ; ++i) { int x, y, z; std::cin >> x >> y >> z; x += 1, y += 1; g[x].push_back({y, z}); } for(int i = 1 ; i <= q ; ++i) { int x, y; std::cin >> x >> y; x += 1, y += 1; if(x > y) { std::swap(x, y); } for(int i = x ; i <= y ; ++i) { dp[i] = INF; } dp[x] = 0; for(int i = x ; i <= y ; ++i) { for(auto [to, w] : g[i]) { dp[to] = std::min(dp[to], dp[i] + w); } } std::cout << (dp[y] != INF ? dp[y] : -1) << "\n"; } } void fastIO() { std::ios_base::sync_with_stdio(false); std::cin.tie(NULL); std::cout.tie(NULL); } int main() { fastIO(); solve(); 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...