Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define PI 2*asin(1)
- #define FOR(i,n) for(long long i = 0; i < n;i++)
- using namespace std;
- long long n,m,s,t;
- vector <long long>res;
- vector<vector<pair<long long,long long>>>rast(100001);
- void go(long long v){
- for(long long i = 0; i < rast[v].size(); i++){
- res[rast[v][i].first] = min(res[rast[v][i].first], res[v]+rast[v][i].second);
- go(rast[v][i].first);
- }
- }
- int main()
- {
- ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
- cin >> n >> m >> s >> t; s--;t--;
- FOR(i,n) res.push_back(INT_MAX);
- res[s] = 0;
- FOR(i,m){
- long long x,y,z;cin >> x >> y >> z; x--;y--;
- rast[x].push_back({y,z});
- }
- go(s);
- long long y = res[t];
- if(y<INT_MAX)cout << res[t];
- else cout << "Unreachable";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement