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 {
    int to, cost;
    Edge(int t, int c) : to(t), cost(c) {}
};
&#160;
typedef pair<int, int> P;
&#160;
int main() {
    int N, M; cin >> N >> M;
    vector<vector<Edge> > edges(N);
    vector<int> toMe(N, 0);
    for(int i = 0; i < M; i++) {
        int from, to, cost;
        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:16:2: error: stray '#' in program
   16 | &#160;
      |  ^
a.cc:18:2: error: stray '#' in program
   18 | &#160;
      |  ^
a.cc:26:10: error: stray '#' in program
   26 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;edges[from].push_back(Edge(to, cost));
      |          ^
a.cc:26:16: error: stray '#' in program
   26 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;edges[from].push_back(Edge(to, cost));
      |                ^
a.cc:26:22: error: stray '#' in program
   26 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;edges[from].push_back(Edge(to, cost));
      |                      ^
a.cc:26:28: error: stray '#' in program
   26 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;edges[from].push_back(Edge(to, cost));
      |                            ^
a.cc:26:34: error: stray '#' in program
   26 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;edges[from].push_back(Edge(to, cost));
      |                                  ^
a.cc:26:40: error: stray '#' in program
   26 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;edges[from].push_back(Edge(to, cost));
      |                                        ^
a.cc:26:46: error: stray '#' in program
   26 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;edges[from].push_back(Edge(to, cost));
      |                                              ^
a.cc:26:52: error: stray '#' in program
   26 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;edges[from].push_back(Edge(to, cost));
      |                                                    ^
a.cc:27:10: error: stray '#' in program
   27 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;toMe[to]++;
      |          ^
a.cc:27:16: error: stray '#' in program
   27 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;toMe[to]++;
      |                ^
a.cc:27:22: error: stray '#' in program
   27 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;toMe[to]++;
      |                      ^
a.cc:27:28: error: stray '#' in program
   27 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;toMe[to]++;
      |                            ^
a.cc:27:34: error: stray '#' in program
   27 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;toMe[to]++;
      |                                  ^
a.cc:27:40: error: stray '#' in program
   27 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;toMe[to]++;
      |                                        ^
a.cc:27:46: error: stray '#' in program
   27 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;toMe[to]++;
      |                                              ^
a.cc:27:52: error: stray '#' in program
   27 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;toMe[to]++;
      |                                                    ^
a.cc:28:10: error: stray '#' in program
   28 |         &#160;&#160;&#160;&#160;}
      |          ^
a.cc:28:16: error: stray '#' in program
   28 |         &#160;&#160;&#160;&#160;}
      |                ^
a.cc:28:22: error: stray '#' in program
   28 |         &#160;&#160;&#160;&#160;}
      |                      ^
a.cc:28:28: error: stray '#' in program
   28 |         &#160;&#160;&#160;&#160;}
      |                            ^
a.cc:29:6: error: stray '#' in program
   29 |     &#160;&#160;&#160;&#160;&#160;
      |      ^
a.cc:29:12: error: stray '#' in program
   29 |     &#160;&#160;&#160;&#160;&#160;
      |            ^
a.cc:29:18: error: stray '#' in program
   29 |     &#160;&#160;&#160;&#160;&#160;
      |                  ^
a.cc:29:24: error: stray '#' in program
   29 |     &#160;&#160;&#160;&#160;&#160;
      |                        ^
a.cc:29:30: error: stray '#' in program
   29 |     &#160;&#160;&#160;&#160;&#160;
      |                              ^
a.cc:30:10: error: stray '#' in program
   30 |         &#160;&#160;&#160;&#160;int S = -1, T = -1;
      |          ^
a.cc:30:16: error: stray '#' in program
   30 |         &#160;&#160;&#160;&#160;int S = -1, T = -1;
      |                ^
a.cc:30:22: error: stray '#' in program
   30 |         &#160;&#160;&#160;&#160;int S = -1, T = -1;
      |                      ^
a.cc:30:28: error: stray '#' in program
   30 |         &#160;&#160;&#160;&#160;int S = -1, T = -1;
      |                            ^
a.cc:31:6: error: stray '#' in program
   31 |     &#160;&#160;&#160;&#160;for(int i = 0; i < N; i++) {
      |      ^
a.cc:31:12: error: stray '#' in program
   31 |     &#160;&#160;&#160;&#160;for(int i = 0; i < N; i++) {
      |            ^
a.cc:31:18: error: stray '#' in program
   31 |     &#160;&#160;&#160;&#160;for(int i = 0; i < N; i++) {
      |                  ^
a.cc:31:24: error: stray '#' in program
   31 |     &#160;&#160;&#160;&#160;for(int i = 0; i < N; i++) {
      |                        ^
a.cc:32:10: error: stray '#' in program
   32 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(toMe[i] == 0) S = i;
      |          ^
a.cc:32:16: error: stray '#' in program
   32 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(toMe[i] == 0) S = i;
      |                ^
a.cc:32:22: error: stray '#' in program
   32 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(toMe[i] == 0) S = i;
      |                      ^
a.cc:32:28: error: stray '#' in program
   32 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(toMe[i] == 0) S = i;
      |                            ^
a.cc:32:34: error: stray '#' in program
   32 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(toMe[i] == 0) S = i;
      |                                  ^
a.cc:32:40: error: stray '#' in program
   32 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(toMe[i] == 0) S = i;
      |                                        ^
a.cc:32:46: error: stray '#' in program
   32 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(toMe[i] == 0) S = i;
      |                                              ^
a.cc:32:52: error: stray '#' in program
   32 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(toMe[i] == 0) S = i;
      |                                                    ^
a.cc:33:10: error: stray '#' in program
   33 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(edges[i].empty()) T = i;
      |          ^
a.cc:33:16: error: stray '#' in program
   33 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(edges[i].empty()) T = i;
      |                ^
a.cc:33:22: error: stray '#' in program
   33 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(edges[i].empty()) T = i;
      |                      ^
a.cc:33:28: error: stray '#' in program
   33 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(edges[i].empty()) T = i;
      |                            ^
a.cc:33:34: error: stray '#' in program
   33 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(edges[i].empty()) T = i;
      |                                  ^
a.cc:33:40: error: stray '#' in program
   33 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(edges[i].empty()) T = i;
      |                                        ^
a.cc:33:46: error: stray '#' in program
   33 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(edges[i].empty()) T = i;
      |                                              ^
a.cc:33:52: error: stray '#' in program
   33 |         &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(edges[i].empty()) T = i;
      |                                                    ^
a.cc:34:10: error: stray '#' in program
   34 |         &#160;&#160;&#160;&#160;}
      |          ^
a.cc:34:16: error: stray '#' in program
   34 |         &#160;&#160;&#160;&#160;}
      |                ^
a.cc:34:22: error: stray '#' in program
   34 |         &#160;&#160;&#160;&#160;}
      |                      ^
a.cc:34:28: error: stray '#' in program
   34 |         &#160;&#160;&#160;&#160;}
      |                            ^
a.cc:35:6: error: stray '#' in program
   35 |     &#160;&#160;&#160;&#160;assert(S != -1);
      |      ^
a.cc:35:12: error: stray '#' in program
   35 |     &#160;&#160;&#160;&#160;assert(S != -1);
      |            ^
a.cc:35:18: error: stray '#' in program
   35 |     &#160;&#160;&#160;&#160;assert(S != -1);
      |                  ^
a.cc:35:24: error: stray '#' in program
   35 |     &#160;&#160;&#160;&#160;assert(S != -1);
      |                        ^
a.cc:36:6: error: stray '#' in program
   36 |     &#160;&#160;&#160;&#160;assert(T != -1);
      |      ^
a.cc:36:12: error: stray '#' in program
   36 |     &#160;&#160;&#160;&#160;assert(T != -1);
      |            ^
a.cc:36:18: error: stray '#' in program
   36 |     &#160;&#160;&#160;&#160;assert(T != -1);
      |                  ^
a.cc:36:24: error: stray '#' in program
   36 |     &#160;&#160;&#160;&#160;assert(T != -1);
      |                        ^
a.cc:37:6: error: stray '#' in program
   37 |     &#160;&#160;&#160;&#160;&#160;
      |      ^
a.cc:37:12: error: stray '#' in program
   37 |     &#160;&#160;&#160;&#160;&#160;
      |            ^
a.cc:37:18: error: stray '#' in program
   37 |     &#160;&#160;&#160;&#160;&#160;
      |                  ^
a.cc:37:24: error: stray '#' in program
   37 |     &#160;&#160;&#160;&#160;&#160;
      |                        ^
a.cc:37:30: error: stray '#' in program
   37 |     &#160;&#160;&#160;&#160;&#160;
      |                              ^
a.cc:38:10: error: stray '#' in program
   38 |         &#160;&#160;&#160;&#160;priority_queue<P, vector<P>, greater<P> > Q;
      |          ^
a.cc:38:16: error: stray '#' in program
   38 |         &#160;&#160;&#160;&#160;priority_queue<P, vector<P>, greater<P> > Q;
      |                ^
a.cc:38:22: error: stray '#' in program
   38 |         &#160;&#160;&#160;&#160;priority_queue<P, vector<P>, greater<P> > Q;
      |                      ^
a.cc:38:28: error: stray '#' in program
   38 |         &#160;&#160;&#160;&#160;priority_queue<P, vector<P>, greater<P> > Q;
      |                            ^