Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define F first
- #define S second
- #define ll long long
- #define pb push_back
- using namespace std;
- vector < vector < int > > v;
- vector < int > d;
- vector < int > pr;
- vector < int > fl;
- int main()
- {
- freopen("input.txt","r",stdin);
- freopen("output.txt","w",stdout);
- int n, s, f;
- cin >> n >> s >> f;
- // cerr << " eftfew ";
- for (int i = 0; i < n; i++){
- for (int j = 0; j < n; j++){
- cin >> v[i][j];
- }
- }
- for (int i = 0; i < n; i++){
- d[i] = v[s][i];
- }
- for (int i = 0 ; i < n-1; i++){
- int mi = 1e9, nom = 0;
- for (int j = 0; j < n; j++){
- if (d[j] < mi && fl[j] == 0) {mi = d[j]; nom = j; }
- int p = nom;
- fl[p] = 1;
- for (int j = 0; j < n; j++){
- if (fl[j] == 0 && v[p][j] + d[p] < d[j] ){
- d[j] = v[p][j] + d[p];
- pr[j] = p;
- }
- }
- }
- }
- if ( d[f] == 1e9){
- cout << -1;
- return 0;
- }
- cout << d[f];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement