Advertisement
Guest User

Untitled

a guest
Apr 24th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3.  
  4. using namespace std;
  5.  
  6. /**
  7. Se da un graf neorientat. Calculati distantele de la 1 la toate
  8. celelalte noduri, folosind DFS(chiar daca in mod normal se face cu BFS).
  9. */
  10.  
  11. int n,m;
  12. vector<int>L[100003];
  13. int d[100003];
  14. const int INF = 2000000000;
  15.  
  16. void citire()
  17. {
  18. int i,x,y;
  19. ifstream fin("date.in");
  20. fin>>n>>m;
  21. for(i=1;i<=m;i++)
  22. {
  23. fin>>x>>y;
  24. L[x].push_back(y);
  25. L[y].push_back(x);
  26. }
  27. fin.close();
  28. }
  29.  
  30. void dfs(int x)
  31. {
  32. int i,y;
  33. for(i=0;i<L[x].size();i++)
  34. {
  35. y=L[x][i];
  36. if( d[y] > d[x] + 1 )
  37. {
  38. d[y] = d[x] + 1;
  39. dfs(y);
  40. }
  41. }
  42. }
  43.  
  44. void afisare()
  45. {
  46. int i;
  47. ofstream fout("date.out");
  48. for(i=1;i<=n;++i)
  49. fout<<d[i]<<" ";
  50. fout.close();
  51.  
  52. }
  53.  
  54. int main()
  55. {
  56. citire();
  57. int i;
  58. for(i=1;i<=n;++i)
  59. d[i] = INF;
  60. d[1]=0;
  61. dfs(1);
  62. afisare();
  63. return 0;
  64.  
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement