Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #include <algorithm>
- #include <vector>
- using namespace std;
- int main()
- {
- int n, i, j, k, vBegin, vEnd;
- scanf("%d", &n);
- vector < vector <int> > arr(n, vector <int> (n));
- const int MISS = (n * (n - 1)) / 2 + 1;
- for(i = 0; i < n; i++)
- {
- for(j = 0; j < n; j++)
- {
- scanf("%d", &arr[i][j]);
- if(!arr[i][j] && i != j) arr[i][j] = MISS;
- }
- }
- for(k = 0; k < n; k++) for(i = 0; i < n; i++) for(j = 0; j < n; j++) arr[i][j] = min(arr[i][j], arr[i][k] + arr[k][j]);
- scanf("%d%d", &vBegin, &vEnd);
- vBegin--, vEnd--;
- if(arr[vBegin][vEnd] == MISS) printf("-1");
- else printf("%d", arr[vBegin][vEnd]);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement