a53

Distante

a53
Mar 18th, 2022 (edited)
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. ifstream fin("distante.in");
  5. ofstream fout("distante.out");
  6.  
  7. int n , m , A[1001][1001], V[1001], Dp[1001], Dq[1001], p , q;
  8.  
  9. void BFS(int x , int D[])
  10. {
  11. for(int i = 1 ; i <= n ; i ++)
  12. V[i] = 0;
  13. int Q[1001], st = 1 , dr = 0;
  14. Q[++dr] = x, V[x] = 1, D[x] = 0;
  15. while(st <= dr)
  16. {
  17. int k = Q[st];
  18. for(int i = 1 ; i <= n ; i ++)
  19. if(A[k][i] == 1 && V[i] == 0)
  20. {
  21. Q[++ dr] = i;
  22. V[i] = 1;
  23. D[i] = D[k] + 1;
  24. }
  25. st ++;
  26. }
  27. }
  28.  
  29. int main()
  30. {
  31. int i , j;
  32. fin >> n >> m >> p >> q;
  33. while(m)
  34. {
  35. fin >> i >> j;
  36. A[i][j] = A[j][i] = 1;
  37. m --;
  38. }
  39. BFS(p, Dp);
  40. BFS(q, Dq);
  41. for(int i = 1 ; i <= n ; i ++)
  42. if(Dp[i] == Dq[i])
  43. fout << i << " ";
  44. fout << '\n';
  45. return 0;
  46. }
Add Comment
Please, Sign In to add comment