fork download
  1. #include <string>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <numeric>
  5. #include <set>
  6. #include <map>
  7. #include <queue>
  8.  
  9. #include<stack>
  10. #include<bitset>
  11. #include <iostream>
  12. #include <sstream>
  13. #include <cstdio>
  14. #include <cmath>
  15. #include <ctime>
  16. #include <cstring>
  17. #include <cctype>
  18. #include <cassert>
  19. #include <limits>
  20. #include <functional>
  21. #include<unordered_map>
  22.  
  23. #define rep(i,n) for(int (i)=0;(i)<(int)(n);++(i))
  24.  
  25. #define reu(i,l,u) for(int (i)=(int)(l);(i)<(int)(u);++(i))
  26. #define aut(r,v) for(auto r:v)
  27.  
  28. #define each(it,o) for(aut(it, (o).begin()); it != (o).end(); ++ it)
  29. #define all(o) (o).begin(), (o).end()
  30. #define pb(x) push_back(x)
  31. #define pc() pop_back()
  32.  
  33. #define ull unsigned long long
  34. #define mp(x,y) make_pair((x),(y))
  35. #define mset(m,v) memset(m,v,sizeof(m))
  36.  
  37. #define INF 0x3f3f3f3f
  38. #define INFL 0x3f3f3f3f3f3f3f3fLL
  39. using namespace std;
  40. #define endl '\n'
  41.  
  42. #define st stack<int>
  43.  
  44.  
  45.  
  46. #define vl vector<long long>
  47. #define vi vector<int>
  48. #define vb vector<bool>
  49. #define vc vector<char>
  50. #define pii pair<int,int>
  51. #define vpii vector<pii>
  52. #define vvi vector<vi>
  53. #define vs vector<string>
  54.  
  55. #define mod 1000000007
  56.  
  57. #define un unordered_map<int,int>
  58. #define mii map<int,int>
  59.  
  60. #define Sort(a) sort(all(a))
  61. #define ED(a) Sort(a), a.erase(unique(all(a)), a.end())//removing all duplicates
  62.  
  63. #define max3(a, b, c) max(a, max(b, c))
  64. #define min3(a, b, c) min(a, min(b, c))
  65. #define Max(a) *max_element(all(a))
  66. #define Min(a) *min_element(all(a))
  67. #define MaxP(a) max_element(all(a)) - a.begin()
  68. #define MinP(a) min_element(all(a)) - a.begin()
  69.  
  70. #define allUpper(a) transform(all(a), a.begin(), :: toupper)
  71. #define allLower(a) transform(all(a), a.begin(), :: tolower)
  72.  
  73. #define rev(a) reverse(all(a))
  74. #define ub(v,k) upper_bound(all(v), k) - v.begin()
  75. #define lb(v,k) lower_bound(all(v), k) - v.begin()
  76. #define adv(a,n) advance(auto it:a,n)
  77. #define RSort(a) sort(a.rbegin(),a.rend()) //decending order
  78. #define cnt(v,a) count(all(v),a)
  79. #define bs(v,a) binary_search(all(v),a)
  80. #define mmax(v) *max_element(all(v))
  81. #define mmin(v) *min_element(all(v))
  82. #define popcount(mask) __builtin_popcount(mask) // count set bit
  83. #define popcountLL(mask) __builtin_popcountll(mask) // for long long
  84. #define X real() // useful for working with #include <complex> for computational geometry
  85. #define Y imag()
  86. #define ll long long
  87. #define ss second
  88. #define ff first
  89.  
  90. #define trace1(x) cerr << #x << ": " << x << endl;
  91. #define trace2(x, y) cerr << #x << ": " << x << " | " << #y << ": " << y << endl;
  92. #define trace3(x, y, z) cerr << #x << ": " << x << " | " << #y << ": " << y << " | " << #z << ": " << z << endl;
  93. #define trace4(a, b, c, d) cerr << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " << #d << ": " << d << endl;
  94. #define trace5(a, b, c, d, e) cerr << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " << #d << ": " << d << " | " << #e << ": " << e << endl;
  95. #define trace6(a, b, c, d, e, f) cerr << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " << #d << ": " << d << " | " << #e << ": " << e << " | " << #f << ": " << f << endl;
  96.  
  97. template <typename T> T gcd(T a, T b) { while (b) b ^= a ^= b ^= a %= b; return a; }
  98. template <typename T> T setbit(T mask, T pos) { return mask |= (1 << pos); }
  99. template <typename T> T resetbit(T mask, T pos) { return mask &= ~(1 << pos); }
  100. template <typename T> T togglebit(T mask, T pos) { return mask ^= (1 << pos); }
  101. template <typename T> T checkbit(T mask, T pos) { return (bool)(mask & (1 << pos)); }
  102. template <typename T> T lcm(T a, T b) { return (a / gcd(a, b)) * b; }
  103.  
  104.  
  105.  
  106. template <typename T> T modu(T a, T b) { return (a < b ? a : a % b); }
  107. template<typename T> T mod_neg(T a, T b) { a = mod(a, b); if (a < 0) { a += b; } return a; }
  108.  
  109. template <typename T>T expo(T e, T n) { T x = 1, p = e; while (n) { if (n & 1)x = x * p; p = p * p; n >>= 1; } return x; }
  110. template<typename T> T mod_inverse(T a, T n) { T x, y; T d = extended_euclid(a, n, x, y); return (d > 1 ? -1 : mod_neg(x, n)); }
  111.  
  112. template <typename T>T power(T e, T n, T m) { T x = 1, p = e; while (n) { if (n & 1)x = mod(x * p, m); p = mod(p * p, m); n >>= 1; } return x; }
  113. template <typename T>T powerL(T e, T n, T m) { T x = 1, p = e; while (n) { if (n & 1)x = mulmod(x, p, m); p = mulmod(p, p, m); n >>= 1; } return x; }
  114.  
  115. bool Pow2(int n) {
  116. return n && (!(n & (n - 1)));
  117. }
  118. void printc(vc& result) {
  119. aut(r, result) cout << r << " ";
  120. cout << endl;
  121. }
  122. void printl(vl& result) {
  123. aut(r, result) cout << r << " ";
  124. cout << endl;
  125. }
  126. void print(vi& result) {
  127. aut(r, result) cout << r << " ";
  128. cout << endl;
  129. }
  130.  
  131. long long binpow(long long a, long long b) {
  132. long long res = 1;
  133. while (b > 0) {
  134. if (b & 1)
  135. res = res * a;
  136. a = a * a;
  137. b >>= 1;
  138. }
  139. return res;
  140. }
  141. /*ll modInv(ll a) { return power(a, mod - 2) % mod; }
  142. ll fact[1], inv[1];
  143. void factorial(ll n) {
  144.   fact[0] = 1;
  145.   for (ll i = 1; i <= n; i++) {
  146.   fact[i] = fact[i - 1] * i;
  147.   fact[i] %= mod;
  148.   }
  149. }
  150. void InvFactorial(ll n) {
  151.   inv[0] = 1;
  152.   for (ll i = 1; i <= n; i++)
  153.   inv[i] = modInv(fact[i]);
  154. }
  155. ll ncr(ll n, ll r) {
  156.   if (n < r || n < 0 || r < 0)
  157.   return 0;
  158.   ll b = inv[n - r];
  159.   ll c = inv[r];
  160.   ll a = fact[n] * b;
  161.   a %= mod;
  162.   a *= c;
  163.   a %= mod;
  164.   return a;
  165. }*/
  166. //ifstream cin("b_read_on.txt"); ofstream cout("output3.txt");
  167. //Use (<<) for multiplication
  168. //Use (>>) for division
  169. //ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);cout<<fixed;cerr.tie(NULL);
  170. // find_by_order -> value at index
  171. // order_of_key -> index of value
  172. // while using (1<<i) use ((ll)1<<(ll)i)
  173. // in Floyd-Warshall Algo, k is outer loop
  174. // If an element was not initially in map and if asked mp[a],the element gets inserted
  175. // a%=mod take a lot of time... try to use it minimum and use memset as it reduces a lot of time usage...use if(a>=mod) a%=mod
  176. //cout<<(double) can be harmful , always use printf(%.9llf)...take scanf("%lf",&p[i][j]) as input , not llf;
  177. //use s.erase(it++) for erasing iterator and then moving to the next one
  178. //never use adj.resize(n) as value is persistent, always erase
  179. //use __builtin_popcountll() for ll
  180. // no of prime numbers in range : (70,19) , (1000,168) , (100000,1229) , (sqrt(10^9),3409) ;
  181. //always check the use of segment tree using bottom-up dp
  182. vector<pair<int, int>> adj[100001];
  183. vb vis(100001);
  184. vi dis(100001,INF);
  185. vi par(100001, -1);
  186. void disktraw(int s,int n) {
  187. dis[s] = 0;
  188. priority_queue<pair<int, int>> pq;
  189. pq.push({ 0,s });
  190. while (!pq.empty()) {
  191. int a = pq.top().ss;
  192. pq.pop();
  193. if (vis[a]) continue;
  194. vis[a] = true;
  195. for (auto it : adj[a]) {
  196. int b = it.ff;
  197. int w = it.ss;
  198. if (dis[a] + w < dis[b]) {
  199. par[b] = a;
  200. dis[b] = dis[a] + w;
  201. pq.push({ -dis[b],b });
  202. }
  203. }
  204.  
  205. }
  206. if (vis[n] == false) cout << -1 << endl;
  207. else {
  208. vi path;
  209. for (int i = n; i != -1; i = par[i]) {
  210. path.pb(i);
  211. }
  212. reverse(all(path));
  213. print(path);
  214.  
  215. }
  216. }
  217.  
  218.  
  219.  
  220.  
  221.  
  222. int main() {
  223. ios_base::sync_with_stdio(false);
  224. cin.tie(NULL);
  225. cout.tie(NULL);
  226. int test;
  227. test = 1;
  228. // cin >> test;
  229. while (test--) {
  230. int n, m;
  231. cin >> n >> m;
  232. vector<tuple<int, int, int>> edges;
  233. while (m--) {
  234. int a, b, w;
  235. cin >> a >> b >> w;
  236. adj[a].push_back({ b,w });
  237. adj[b].push_back({ a,w });
  238.  
  239. }
  240. disktraw(1,n);
  241. }
  242.  
  243. }
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:1: error: illegal character: '#'
#include <string>
^
Main.java:1: error: class, interface, or enum expected
#include <string>
         ^
Main.java:2: error: illegal character: '#'
#include <vector>
^
Main.java:3: error: illegal character: '#'
#include <algorithm>
^
Main.java:4: error: illegal character: '#'
#include <numeric>
^
Main.java:5: error: illegal character: '#'
#include <set>
^
Main.java:6: error: illegal character: '#'
#include <map>
^
Main.java:7: error: illegal character: '#'
#include <queue>
^
Main.java:9: error: illegal character: '#'
#include<stack>
^
Main.java:10: error: illegal character: '#'
#include<bitset>
^
Main.java:11: error: illegal character: '#'
#include <iostream>
^
Main.java:12: error: illegal character: '#'
#include <sstream>
^
Main.java:13: error: illegal character: '#'
#include <cstdio>
^
Main.java:14: error: illegal character: '#'
#include <cmath>
^
Main.java:15: error: illegal character: '#'
#include <ctime>
^
Main.java:16: error: illegal character: '#'
#include <cstring>
^
Main.java:17: error: illegal character: '#'
#include <cctype>
^
Main.java:18: error: illegal character: '#'
#include <cassert>
^
Main.java:19: error: illegal character: '#'
#include <limits>
^
Main.java:20: error: illegal character: '#'
#include <functional>
^
Main.java:21: error: illegal character: '#'
#include<unordered_map>
^
Main.java:23: error: illegal character: '#'
#define rep(i,n) for(int (i)=0;(i)<(int)(n);++(i))
^
Main.java:23: error: class, interface, or enum expected
#define rep(i,n) for(int (i)=0;(i)<(int)(n);++(i))
                               ^
Main.java:23: error: class, interface, or enum expected
#define rep(i,n) for(int (i)=0;(i)<(int)(n);++(i))
                                            ^
Main.java:25: error: illegal character: '#'
#define reu(i,l,u) for(int (i)=(int)(l);(i)<(int)(u);++(i))
^
Main.java:25: error: class, interface, or enum expected
#define reu(i,l,u) for(int (i)=(int)(l);(i)<(int)(u);++(i))
                                        ^
Main.java:25: error: class, interface, or enum expected
#define reu(i,l,u) for(int (i)=(int)(l);(i)<(int)(u);++(i))
                                                     ^
Main.java:26: error: illegal character: '#'
#define aut(r,v) for(auto r:v)
^
Main.java:28: error: illegal character: '#'
#define each(it,o) for(aut(it, (o).begin()); it != (o).end(); ++ it)
^
Main.java:28: error: class, interface, or enum expected
#define each(it,o) for(aut(it, (o).begin()); it != (o).end(); ++ it)
                                             ^
Main.java:28: error: class, interface, or enum expected
#define each(it,o) for(aut(it, (o).begin()); it != (o).end(); ++ it)
                                                              ^
Main.java:29: error: illegal character: '#'
#define all(o) (o).begin(), (o).end()
^
Main.java:30: error: illegal character: '#'
#define pb(x) push_back(x)
^
Main.java:31: error: illegal character: '#'
#define pc()  pop_back()
^
Main.java:33: error: illegal character: '#'
#define ull unsigned long long
^
Main.java:34: error: illegal character: '#'
#define mp(x,y) make_pair((x),(y))
^
Main.java:35: error: illegal character: '#'
#define mset(m,v) memset(m,v,sizeof(m))
^
Main.java:37: error: illegal character: '#'
#define INF 0x3f3f3f3f
^
Main.java:38: error: illegal character: '#'
#define INFL 0x3f3f3f3f3f3f3f3fLL
^
Main.java:40: error: illegal character: '#'
#define endl '\n'
^
Main.java:40: error: class, interface, or enum expected
#define endl '\n'
        ^
Main.java:42: error: illegal character: '#'
#define st stack<int>
^
Main.java:46: error: illegal character: '#'
#define vl vector<long long>
^
Main.java:47: error: illegal character: '#'
#define vi vector<int>
^
Main.java:48: error: illegal character: '#'
#define vb vector<bool>
^
Main.java:49: error: illegal character: '#'
#define vc vector<char>
^
Main.java:50: error: illegal character: '#'
#define pii pair<int,int>
^
Main.java:51: error: illegal character: '#'
#define vpii vector<pii>
^
Main.java:52: error: illegal character: '#'
#define vvi vector<vi>
^
Main.java:53: error: illegal character: '#'
#define vs vector<string>
^
Main.java:55: error: illegal character: '#'
#define mod 1000000007
^
Main.java:57: error: illegal character: '#'
#define un  unordered_map<int,int>
^
Main.java:58: error: illegal character: '#'
#define mii map<int,int>
^
Main.java:60: error: illegal character: '#'
#define Sort(a) sort(all(a))
^
Main.java:61: error: illegal character: '#'
#define ED(a) Sort(a), a.erase(unique(all(a)), a.end())//removing all duplicates
^
Main.java:63: error: illegal character: '#'
#define max3(a, b, c)   max(a, max(b, c))
^
Main.java:64: error: illegal character: '#'
#define min3(a, b, c)   min(a, min(b, c))
^
Main.java:65: error: illegal character: '#'
#define Max(a)       *max_element(all(a))
^
Main.java:66: error: illegal character: '#'
#define Min(a)       *min_element(all(a))
^
Main.java:67: error: illegal character: '#'
#define MaxP(a)       max_element(all(a)) - a.begin()
^
Main.java:68: error: illegal character: '#'
#define MinP(a)        min_element(all(a)) - a.begin()
^
Main.java:70: error: illegal character: '#'
#define allUpper(a)     transform(all(a), a.begin(), :: toupper)
^
Main.java:71: error: illegal character: '#'
#define allLower(a)     transform(all(a), a.begin(), :: tolower)
^
Main.java:73: error: illegal character: '#'
#define rev(a)          reverse(all(a))
^
Main.java:74: error: illegal character: '#'
#define ub(v,k)          upper_bound(all(v), k) - v.begin()
^
Main.java:75: error: illegal character: '#'
#define lb(v,k)          lower_bound(all(v), k) - v.begin()
^
Main.java:76: error: illegal character: '#'
#define adv(a,n)        advance(auto it:a,n)
^
Main.java:77: error: illegal character: '#'
#define RSort(a)         sort(a.rbegin(),a.rend()) //decending order
^
Main.java:78: error: illegal character: '#'
#define cnt(v,a)             count(all(v),a)
^
Main.java:79: error: illegal character: '#'
#define bs(v,a)           binary_search(all(v),a)
^
Main.java:80: error: illegal character: '#'
#define mmax(v)           *max_element(all(v))
^
Main.java:81: error: illegal character: '#'
#define mmin(v)           *min_element(all(v))
^
Main.java:82: error: illegal character: '#'
#define popcount(mask)                       __builtin_popcount(mask) // count set bit
^
Main.java:83: error: illegal character: '#'
#define popcountLL(mask)                     __builtin_popcountll(mask) // for long long
^
Main.java:84: error: illegal character: '#'
#define X real() // useful for working with #include <complex> for computational geometry
^
Main.java:85: error: illegal character: '#'
#define Y imag()
^
Main.java:86: error: illegal character: '#'
#define ll long long
^
Main.java:87: error: illegal character: '#'
#define ss second
^
Main.java:88: error: illegal character: '#'
#define ff first
^
Main.java:90: error: illegal character: '#'
#define trace1(x)                           cerr << #x << ": " << x << endl;
^
Main.java:90: error: illegal character: '#'
#define trace1(x)                           cerr << #x << ": " << x << endl;
                                                    ^
Main.java:91: error: illegal character: '#'
#define trace2(x, y)                        cerr << #x << ": " << x << " | " << #y << ": " << y << endl;
^
Main.java:91: error: class, interface, or enum expected
#define trace2(x, y)                        cerr << #x << ": " << x << " | " << #y << ": " << y << endl;
        ^
Main.java:91: error: illegal character: '#'
#define trace2(x, y)                        cerr << #x << ": " << x << " | " << #y << ": " << y << endl;
                                                    ^
Main.java:91: error: illegal character: '#'
#define trace2(x, y)                        cerr << #x << ": " << x << " | " << #y << ": " << y << endl;
                                                                                ^
Main.java:92: error: illegal character: '#'
#define trace3(x, y, z)                     cerr << #x << ": " << x << " | " << #y << ": " << y << " | " << #z << ": " << z << endl;
^
Main.java:92: error: class, interface, or enum expected
#define trace3(x, y, z)                     cerr << #x << ": " << x << " | " << #y << ": " << y << " | " << #z << ": " << z << endl;
        ^
Main.java:92: error: illegal character: '#'
#define trace3(x, y, z)                     cerr << #x << ": " << x << " | " << #y << ": " << y << " | " << #z << ": " << z << endl;
                                                    ^
Main.java:92: error: illegal character: '#'
#define trace3(x, y, z)                     cerr << #x << ": " << x << " | " << #y << ": " << y << " | " << #z << ": " << z << endl;
                                                                                ^
Main.java:92: error: illegal character: '#'
#define trace3(x, y, z)                     cerr << #x << ": " << x << " | " << #y << ": " << y << " | " << #z << ": " << z << endl;
                                                                                                            ^
Main.java:93: error: illegal character: '#'
#define trace4(a, b, c, d)                  cerr << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " << #d << ": " << d << endl;
^
Main.java:93: error: class, interface, or enum expected
#define trace4(a, b, c, d)                  cerr << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " << #d << ": " << d << endl;
        ^
Main.java:93: error: illegal character: '#'
#define trace4(a, b, c, d)                  cerr << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " << #d << ": " << d << endl;
                                                    ^
Main.java:93: error: illegal character: '#'
#define trace4(a, b, c, d)                  cerr << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " << #d << ": " << d << endl;
                                                                                ^
Main.java:93: error: illegal character: '#'
#define trace4(a, b, c, d)                  cerr << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " << #d << ": " << d << endl;
                                                                                                            ^
Main.java:93: error: illegal character: '#'
#define trace4(a, b, c, d)                  cerr << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " << #d << ": " << d << endl;
                                                                                                                                        ^
Main.java:94: error: illegal character: '#'
#define trace5(a, b, c, d, e)               cerr << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " << #d << ": " << d << " | " << #e << ": " << e << endl;
^
Main.java:94: error: class, interface, or enum expected
#define trace5(a, b, c, d, e)               cerr << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " << #d << ": " << d << " | " << #e << ": " << e << endl;
        ^
Main.java:94: error: illegal character: '#'
#define trace5(a, b, c, d, e)               cerr << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " << #d << ": " << d << " | " << #e << ": " << e << endl;
                                                    ^
Main.java:94: error: illegal character: '#'
#define trace5(a, b, c, d, e)               cerr << #a << ": " << a << " | " << #b << ": " << b << " | " << #c << ": " << c << " | " << #d << ": " << d << " | " << #e << ": " << e << endl;
                                                                                ^
100 errors
stdout
Standard output is empty