Language: C++

#include <iostream>
#include <algorithm>
#include <queue>
#include <vector>
#include <utility>
#include <cassert>
#include <functional>
using namespace std;
&#160;
#define DEBUG(x) // cerr << #x << " = " << x << endl
&#160;
struct Edge {
&#160;&#160;&#160;&#160;int to, cost;
&#160;&#160;&#160;&#160;Edge(int t, int c) : to(t), cost(c) {}
};
&#160;
typedef pair<int, int> P;
&#160;
int main() {
&#160;&#160;&#160;&#160;int N, M; cin >> N >> M;
&#160;&#160;&#160;&#160;vector<vector<Edge> > edges(N);
&#160;&#160;&#160;&#160;vector<int> toMe(N, 0);
&#160;&#160;&#160;&#160;for(int i = 0; i < M; i++) {
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int from, to, cost;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;cin >> from >> to >> cost;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;edges[from].push_back(Edge(to, cost));
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;toMe[to]++;
&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;
&#160;&#160;&#160;&#160;int S = -1, T = -1;
&#160;&#160;&#160;&#160;for(int i = 0; i < N; i++) {
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(toMe[i] == 0) S = i;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(edges[i].empty()) T = i;
&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;assert(S != -1);
&#160;&#160;&#160;&#160;assert(T != -1);
&#160;&#160;&#160;&#160;&#160;
&#160;&#160;&#160;&#160;priority_queue<P, vector<P>, greater<P> > Q;
&#160;&#160;&#160;&#160;Q.push(make_pair(0, S));
&#160;&#160;&#160;&#160;toMe[S]++;
&#160;&#160;&#160;&#160;int ans = (int)1e9;
&#160;&#160;&#160;&#160;&#160;
&#160;&#160;&#160;&#160;&#160;
&#160;&#160;&#160;&#160;while(!Q.empty()) {
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;P p = Q.top(); Q.pop();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int v = p.second;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;toMe[v]--;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;DEBUG(v);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;DEBUG(toMe[v]);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;DEBUG(p.first);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(v == T && toMe[v] == 0) {
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;ans = p.first;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;break;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(toMe[v] == 0) {
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;for(int i = 0; i < edges[v].size(); i++) {
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Edge e = edges[v][i];
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;DEBUG(e.to);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Q.push(make_pair(e.cost + p.first, e.to));
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;
&#160;&#160;&#160;&#160;cout << ans << endl;
}

Compiler output:
a.cc:9:2: error: stray '#' in program
    9 | &#160;
      |  ^
a.cc:11:2: error: stray '#' in program
   11 | &#160;
      |  ^
a.cc:13:2: error: stray '#' in program
   13 | &#160;&#160;&#160;&#160;int to, cost;
      |  ^
a.cc:13:8: error: stray '#' in program
   13 | &#160;&#160;&#160;&#160;int to, cost;
      |        ^
a.cc:13:14: error: stray '#' in program
   13 | &#160;&#160;&#160;&#160;int to, cost;
      |              ^
a.cc:13:20: error: stray '#' in program
   13 | &#160;&#160;&#160;&#160;int to, cost;
      |                    ^
a.cc:14:2: error: stray '#' in program
   14 | &#160;&#160;&#160;&#160;Edge(int t, int c) : to(t), cost(c) {}
      |  ^
a.cc:14:8: error: stray '#' in program
   14 | &#160;&#160;&#160;&#160;Edge(int t, int c) : to(t), cost(c) {}
      |        ^
a.cc:14:14: error: stray '#' in program
   14 | &#160;&#160;&#160;&#160;Edge(int t, int c) : to(t), cost(c) {}
      |              ^
a.cc:14:20: error: stray '#' in program
   14 | &#160;&#160;&#160;&#160;Edge(int t, int c) : to(t), cost(c) {}
      |                    ^
a.cc:16:2: error: stray '#' in program
   16 | &#160;
      |  ^
a.cc:18:2: error: stray '#' in program
   18 | &#160;
      |  ^
a.cc:20:2: error: stray '#' in program
   20 | &#160;&#160;&#160;&#160;int N, M; cin >> N >> M;
      |  ^
a.cc:20:8: error: stray '#' in program
   20 | &#160;&#160;&#160;&#160;int N, M; cin >> N >> M;
      |        ^
a.cc:20:14: error: stray '#' in program
   20 | &#160;&#160;&#160;&#160;int N, M; cin >> N >> M;
      |              ^
a.cc:20:20: error: stray '#' in program
   20 | &#160;&#160;&#160;&#160;int N, M; cin >> N >> M;
      |                    ^
a.cc:21:2: error: stray '#' in program
   21 | &#160;&#160;&#160;&#160;vector<vector<Edge> > edges(N);
      |  ^
a.cc:21:8: error: stray '#' in program
   21 | &#160;&#160;&#160;&#160;vector<vector<Edge> > edges(N);
      |        ^
a.cc:21:14: error: stray '#' in program
   21 | &#160;&#160;&#160;&#160;vector<vector<Edge> > edges(N);
      |              ^
a.cc:21:20: error: stray '#' in program
   21 | &#160;&#160;&#160;&#160;vector<vector<Edge> > edges(N);
      |                    ^
a.cc:22:2: error: stray '#' in program
   22 | &#160;&#160;&#160;&#160;vector<int> toMe(N, 0);
      |  ^
a.cc:22:8: error: stray '#' in program
   22 | &#160;&#160;&#160;&#160;vector<int> toMe(N, 0);
      |        ^
a.cc:22:14: error: stray '#' in program
   22 | &#160;&#160;&#160;&#160;vector<int> toMe(N, 0);
      |              ^
a.cc:22:20: error: stray '#' in program
   22 | &#160;&#160;&#160;&#160;vector<int> toMe(N, 0);
      |                    ^
a.cc:23:2: error: stray '#' in program
   23 | &#160;&#160;&#160;&#160;for(int i = 0; i < M; i++) {
      |  ^
a.cc:23:8: error: stray '#' in program
   23 | &#160;&#160;&#160;&#160;for(int i = 0; i < M; i++) {
      |        ^
a.cc:23:14: error: stray '#' in program
   23 | &#160;&#160;&#160;&#160;for(int i = 0; i < M; i++) {
      |              ^
a.cc:23:20: error: stray '#' in program
   23 | &#160;&#160;&#160;&#160;for(int i = 0; i < M; i++) {
      |                    ^
a.cc:24:2: error: stray '#' in program
   24 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int from, to, cost;
      |  ^
a.cc:24:8: error: stray '#' in program
   24 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int from, to, cost;
      |        ^
a.cc:24:14: error: stray '#' in program
   24 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int from, to, cost;
      |              ^
a.cc:24:20: error: stray '#' in program
   24 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int from, to, cost;
      |                    ^
a.cc:24:26: error: stray '#' in program
   24 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int from, to, cost;
      |                          ^
a.cc:24:32: error: stray '#' in program
   24 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int from, to, cost;
      |                                ^
a.cc:24:38: error: stray '#' in program
   24 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int from, to, cost;
      |                                      ^
a.cc:24:44: error: stray '#' in program
   24 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;int from, to, cost;
      |                                            ^
a.cc:25:2: error: stray '#' in program
   25 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;cin >> from >> to >> cost;
      |  ^
a.cc:25:8: error: stray '#' in program
   25 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;cin >> from >> to >> cost;
      |        ^
a.cc:25:14: error: stray '#' in program
   25 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;cin >> from >> to >> cost;
      |              ^
a.cc:25:20: error: stray '#' in program
   25 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;cin >> from >> to >> cost;
      |                    ^
a.cc:25:26: error: stray '#' in program
   25 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;cin >> from >> to >> cost;
      |                          ^
a.cc:25:32: error: stray '#' in program
   25 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;cin >> from >> to >> cost;
      |                                ^
a.cc:25:38: error: stray '#' in program
   25 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;cin >> from >> to >> cost;
      |                                      ^
a.cc:25:44: error: stray '#' in program
   25 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;cin >> from >> to >> cost;
      |                                            ^
a.cc:26:2: error: stray '#' in program
   26 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;edges[from].push_back(Edge(to, cost));
      |  ^
a.cc:26:8: error: stray '#' in program
   26 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;edges[from].push_back(Edge(to, cost));
      |        ^
a.cc:26:14: error: stray '#' in program
   26 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;edges[from].push_back(Edge(to, cost));
      |              ^
a.cc:26:20: error: stray '#' in program
   26 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;edges[from].push_back(Edge(to, cost));
      |                    ^
a.cc:26:26: error: stray '#' in program
   26 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;edges[from].push_back(Edge(to, cost));
      |                          ^
a.cc:26:32: error: stray '#' in program
   26 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;edges[from].push_back(Edge(to, cost));
      |                                ^
a.cc:26:38: error: stray '#' in program
   26 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;edges[from].push_back(Edge(to, cost));
      |                                      ^
a.cc:26:44: error: stray '#' in program
   26 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;edges[from].push_back(Edge(to, cost));
      |                                            ^
a.cc:27:2: error: stray '#' in program
   27 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;toMe[to]++;
      |  ^
a.cc:27:8: error: stray '#' in program
   27 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;toMe[to]++;
      |        ^
a.cc:27:14: error: stray '#' in program
   27 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;toMe[to]++;
      |              ^
a.cc:27:20: error: stray '#' in program
   27 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;toMe[to]++;
      |                    ^
a.cc:27:26: error: stray '#' in program
   27 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;toMe[to]++;
      |                          ^
a.cc:27:32: error: stray '#' in program
   27 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;toMe[to]++;
      |                                ^
a.cc:27:38: error: stray '#' in program
   27 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;toMe[to]++;
      |                                      ^
a.cc:27:44: error: stray '#' in program
   27 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;toMe[to]++;
      |                                            ^
a.cc:28:2: error: stray '#' in program
   28 | &#160;&#160;&#160;&#160;}
      |  ^
a.cc:28:8: error: stray '#' in program
   28 | &#160;&#160;&#160;&#160;}
      |        ^
a.cc:28:14: error: stray '#' in program
   28 | &#160;&#160;&#160;&#160;}
      |              ^
a.cc:28:20: error: stray '#' in program
   28 | &#160;&#160;&#160;&#160;}
      |                    ^
a.cc:29:2: error: stray '#' in program
   29 | &#160;&#160;&#160;&#160;&#160;
      |  ^
a.cc:29:8: error: stray '#' in program
   29 | &#160;&#160;&#160;&#160;&#160;
      |        ^
a.cc:29:14: error: stray '#' in program
   29 | &#160;&#160;&#160;&#160;&#160;
      |              ^
a.cc:29:20: error: stray '#' in program
   29 | &#160;&#160;&#160;&#160;&#160;
      |                    ^
a.cc:29:26: error: stray '#' in program
   29 | &#160;&#160;&#160;&#160;&#160;
      |                          ^
a.cc:30:2: error: stray '#' in program
   30 | &#160;&#160;&#160;&#160;int S = -1, T = -1;
      |  ^
a.cc:30:8: error: stray '#' in program
   30 | &#160;&#160;&#160;&#160;int S = -1, T = -1;
      |        ^
a.cc:30:14: error: stray '#' in program
   30 | &#160;&#160;&#160;&#160;int S = -1, T = -1;
      |              ^
a.cc:30:20: error: stray '#' in program
   30 | &#160;&#160;&#160;&#160;int S = -1, T = -1;
      |                    ^
a.cc:31:2: error: stray '#' in program
   31 | &#160;&#160;&#160;&#160;for(int i = 0; i < N; i++) {
      |  ^
a.cc:31:8: error: stray '#' in program
   31 | &#160;&#160;&#160;&#160;for(int i = 0; i < N; i++) {
      |        ^
a.cc:31:14: error: stray '#' in program
   31 | &#160;&#160;&#160;&#160;for(int i = 0; i < N; i++) {
      |              ^
a.cc:31:20: error: stray '#' in program
   31 | &#160;&#160;&#160;&#160;for(int i = 0; i < N; i++) {
      |                    ^
a.cc:32:2: error: stray '#' in program
   32 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(toMe[i] == 0) S = i;
      |  ^
a.cc:32:8: error: stray '#' in program
   32 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(toMe[i] == 0) S = i;
      |        ^
a.cc:32:14: error: stray '#' in program
   32 | &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(toMe[i] == 0) S = i;
      |              ^
a.cc:32:20: error: stray '#' in program