Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.91 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7. int n;
  8. scanf("%d", &n);
  9. vector <vector <int> > g(n, vector <int> (n));
  10.  
  11. for (int i = 0; i < n; ++i)
  12. for (int j = 0; j < n; ++j)
  13. scanf("%d", &g[i][j]);
  14.  
  15. int v_start, v_end;
  16. scanf("%d %d", &v_start, &v_end);
  17. v_start--;
  18. v_end--;
  19.  
  20. queue <int> q;
  21. q.push(v_start);
  22. vector <bool> used(n, false);
  23. vector <int> dist(n, 0), prev(n);
  24. used[v_start] = true;
  25. prev[v_start] = -1;
  26.  
  27. while (!q.empty())
  28. {
  29. int v = q.front();
  30. q.pop();
  31.  
  32. for (int i = 0; i < n; ++i)
  33. {
  34. if (!used[i] && g[v][i] == 1)
  35. {
  36. used[i] = true;
  37. q.push(i);
  38. dist[i] = dist[v] + 1;
  39. prev[i] = v;
  40. }
  41. }
  42.  
  43. used[v] = true;
  44. }
  45.  
  46. // for (int i = 0; i < n; ++i)
  47. // printf("%d ", dist[i]);
  48. // printf("\n");
  49. // for (int i = 0; i < n; ++i)
  50. // printf("%d ", prev[i]);
  51.  
  52. printf("%d", dist[v_end]);
  53.  
  54. return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement