Task: | Shortest Routes I |
Sender: | paulschulte |
Submission time: | 2024-10-04 12:47:36 +0300 |
Language: | C++ (C++17) |
Status: | READY |
Result: | RUNTIME ERROR |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.00 s | details |
#2 | ACCEPTED | 0.00 s | details |
#3 | ACCEPTED | 0.00 s | details |
#4 | ACCEPTED | 0.00 s | details |
#5 | ACCEPTED | 0.00 s | details |
#6 | RUNTIME ERROR | 0.38 s | details |
#7 | RUNTIME ERROR | 0.38 s | details |
#8 | RUNTIME ERROR | 0.38 s | details |
#9 | RUNTIME ERROR | 0.38 s | details |
#10 | RUNTIME ERROR | 0.38 s | details |
#11 | RUNTIME ERROR | 0.38 s | details |
#12 | RUNTIME ERROR | 0.38 s | details |
#13 | ACCEPTED | 0.00 s | details |
#14 | RUNTIME ERROR | 0.38 s | details |
#15 | RUNTIME ERROR | 0.38 s | details |
#16 | RUNTIME ERROR | 0.38 s | details |
#17 | RUNTIME ERROR | 0.38 s | details |
#18 | RUNTIME ERROR | 0.38 s | details |
Code
// ~/.vim/cpp_template.cpp #include <bits/stdc++.h> #include <iostream> #include <vector> #include <algorithm> #include <string> #include <limits> #define REP(i,a,b) for (int i = a; i < b; i++) // Type Aliases for 1D and 2D vectors with initialization #define vi(n, val) vector<int>(n, val) // 1D vector of ints with size n, initialized to val #define vll(n, val) vector<long long>(n, val) // 1D vector of long longs with size n, initialized to val #define ll long long #define vvi(n, m, val) vector<vector<int>>(n, vector<int>(m, val)) // 2D vector of ints (n x m), initialized to val #define vvll(n, m, val) vector<vector<long long>>(n, vector<long long>(m, val)) // 2D vector of long longs (n x m), initialized to val #define LL_INF std::numeric_limits<long long int>::max() #define INF std::numeric_limits<int>::max() using namespace std; template <typename T> void pV(const std::vector<T>& vec, const std::string& label = "Vector") { std::cout << label << ": [ "; for (const auto& elem : vec) { std::cout << elem << " "; } std::cout << "]" << std::endl; } void dfs(int s, vector<bool> *visited, vector<int> (*adj)[]) { if ((*visited)[s]) return; (*visited)[s] = true; // process node s for (auto u: (*adj)[s]) { dfs(u, visited, adj); } } /* // DEPTH-FRIRST-SEARCH vector<int> adj[N]; vector<bool> visited(N, false); int u, v; for(int i = 0; i < M;i++){ cin >> u >> v; u--; v--; adj[u].push_back(v); adj[v].push_back(u); } */ vector<long long> dijkstra(int N, int x, vector<vector<pair<int,int>>> *adj){ vector<bool> processed(N, false); vector<long long> distance(N, LL_INF); priority_queue<pair<long long,int>> q; //for (int i = 1; i <= n; i++) distance[i] = INF; distance[x] = 0; q.push({0,x}); while (!q.empty()) { int a = q.top().second; q.pop(); if (processed[a]) continue; processed[a] = true; for (auto u : (*adj)[a]) { int b = u.first, w = u.second; if (distance[a]+w < distance[b]) { distance[b] = distance[a]+w; q.push({-distance[b],b}); } } } return distance; } /* DIJKSTRA //vector<vector<pair<int,int>>> adj(N, vector<pair<int, int>>(N)); */ int main() { ios::sync_with_stdio(0); cin.tie(0); // Your code starts here int N, m; cin >> N >> m; vector<vector<pair<int,int>>> adj(N, vector<pair<int, int>>(N)); REP(i, 0, m){ int a, b, c; cin >> a >> b >> c; a--; b--; adj[a].push_back({b,c}); //adj[b].push_back({a,c}); } vector<long long> distance = dijkstra(N, 0, &adj); //pV(distance); REP(i, 0, N){ cout << distance[i] << ' '; } cout << endl; return 0; }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
10 20 8 5 1 9 10 2 7 9 8 9 8 8 ... |
correct output |
---|
0 9 11 20 13 14 19 29 27 29 |
user output |
---|
0 9 11 20 13 14 19 29 27 29 |
Test 2
Verdict: ACCEPTED
input |
---|
10 20 5 6 4 5 1 7 7 4 4 7 8 1 ... |
correct output |
---|
0 7 9 17 15 17 21 22 25 30 |
user output |
---|
0 7 9 17 15 17 21 22 25 30 |
Test 3
Verdict: ACCEPTED
input |
---|
10 20 1 4 1 4 2 1 9 10 1 1 2 4 ... |
correct output |
---|
0 2 11 1 2 7 16 18 12 13 |
user output |
---|
0 2 11 1 2 7 16 18 12 13 |
Test 4
Verdict: ACCEPTED
input |
---|
10 20 6 3 5 7 5 8 5 1 8 8 9 5 ... |
correct output |
---|
0 5 9 18 22 10 14 23 27 36 |
user output |
---|
0 5 9 18 22 10 14 23 27 36 |
Test 5
Verdict: ACCEPTED
input |
---|
10 20 8 9 3 2 3 8 10 5 3 2 5 3 ... |
correct output |
---|
0 8 16 18 11 17 24 23 16 26 |
user output |
---|
0 8 16 18 11 17 24 23 16 26 |
Test 6
Verdict: RUNTIME ERROR
input |
---|
100000 200000 18000 18001 426710313 73018 73012 558438094 87726 87671 355171790 53170 53171 869493690 ... |
correct output |
---|
0 479659405 1165315262 1854343... |
user output |
---|
(empty) |
Test 7
Verdict: RUNTIME ERROR
input |
---|
100000 200000 26504 26450 258578924 49543 49544 28958186 75174 75175 89459846 39175 39228 119699475 ... |
correct output |
---|
0 655556128 1413395076 1814086... |
user output |
---|
(empty) |
Test 8
Verdict: RUNTIME ERROR
input |
---|
100000 200000 39477 39413 773046299 69758 69759 558754983 23279 23280 142570619 61416 61479 874921013 ... |
correct output |
---|
0 269736525 626115013 70199222... |
user output |
---|
(empty) |
Test 9
Verdict: RUNTIME ERROR
input |
---|
100000 200000 76662 76636 844365635 73339 73342 755006676 89878 89879 396562588 18801 18781 954807004 ... |
correct output |
---|
0 598585836 1267139909 1803859... |
user output |
---|
(empty) |
Test 10
Verdict: RUNTIME ERROR
input |
---|
100000 200000 11724 11725 818399968 33244 33197 722525474 65530 65531 483965413 62405 62454 199581867 ... |
correct output |
---|
0 387990617 441010945 92441292... |
user output |
---|
(empty) |
Test 11
Verdict: RUNTIME ERROR
input |
---|
100000 200000 1 2 1 1 3 1 1 4 1 1 5 1 ... |
correct output |
---|
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ... |
user output |
---|
(empty) |
Test 12
Verdict: RUNTIME ERROR
input |
---|
100000 99999 1 2 1000000000 2 3 1000000000 3 4 1000000000 4 5 1000000000 ... |
correct output |
---|
0 1000000000 2000000000 300000... |
user output |
---|
(empty) |
Test 13
Verdict: ACCEPTED
input |
---|
1 1 1 1 1 |
correct output |
---|
0 |
user output |
---|
0 |
Test 14
Verdict: RUNTIME ERROR
input |
---|
99999 149997 1 2 1 2 3 1 3 4 1 4 5 1 ... |
correct output |
---|
0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 ... |
user output |
---|
(empty) |
Test 15
Verdict: RUNTIME ERROR
input |
---|
99997 149994 1 3 3 3 5 3 5 7 3 7 9 3 ... |
correct output |
---|
0 1 2 3 4 5 6 7 8 9 10 11 12 1... |
user output |
---|
(empty) |
Test 16
Verdict: RUNTIME ERROR
input |
---|
60003 120000 1 2 30010 1 3 30010 1 4 30010 1 5 30010 ... |
correct output |
---|
0 30010 30010 30010 30010 3001... |
user output |
---|
(empty) |
Test 17
Verdict: RUNTIME ERROR
input |
---|
60003 120000 1 2 30010 1 3 30010 1 4 30010 1 5 30010 ... |
correct output |
---|
0 30010 30010 30010 30010 3001... |
user output |
---|
(empty) |
Test 18
Verdict: RUNTIME ERROR
input |
---|
100000 149997 1 50000 99997 1 49999 99995 1 49998 99993 1 49997 99991 ... |
correct output |
---|
0 1 3 5 7 9 11 13 15 17 19 21 ... |
user output |
---|
(empty) |