Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. #include <iostream>
  4. #include <stdio.h>
  5. #include <vector>
  6. #include <string>
  7. #include <algorithm>
  8. #include <queue>
  9. #include <map>
  10. #include <set>
  11.  
  12. using namespace std;
  13.  
  14. const int INF = 100000;
  15. int dist[10000];
  16. vector < vector< pair <int, int> > > v;
  17. vector <bool> used;
  18.  
  19. int main()
  20. {
  21. freopen("input.txt", "r", stdin);
  22. freopen("output.txt", "w", stdout);
  23. int n, ch, m, s, f;
  24. cin >> n >> s >> f;
  25.  
  26. for (int i = 0; i < 10000; i++) {
  27. dist[i] = INF;
  28. }
  29. dist[s] = 0;
  30. for (int i = 0; i < n; i++) {
  31. for (int j = 0; j < n; j++) {
  32. cin >> ch;
  33. v[i].push_back(make_pair(j, ch));
  34. }
  35. }
  36. for (int i = 0; i < n; i++) {
  37. int now = -1;
  38. for (int j = 0; j < n; j++) {
  39. if (!used[j] && (now == -1 || dist[j] < dist[now])) {
  40. now = j;
  41. }
  42. }
  43. if (dist[now] == INF) {
  44. break;
  45. }
  46. used[now] = true;
  47. for (int j = 0; j < v[now].size(); j++) {
  48. int to = v[now][j].first;
  49. int how = v[now][j].second;
  50. if (dist[now] + how < dist[to]) {
  51. dist[to] = dist[now] + how;
  52. }
  53. }
  54. }
  55. cout << dist[f];
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement