fork download
  1. #include <iostream>
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4.  
  5.  
  6. void dfs(vector<bool>&vis,vector<vector<int>>&adjlist,int curr,vector<int>&height){
  7. vis[curr]=true;
  8. for(int adj : adjlist[curr]){
  9. if(!vis[adj]){
  10. dfs(vis,adjlist,adj,height);
  11. height[curr]=max(height[curr],1+height[adj]);
  12. }
  13. }
  14. height[curr]=max(height[curr],1);
  15. }
  16. int main() {
  17. int n ; int m ;
  18. cin>>n>>m;
  19. vector<vector<int>>adjlist(n+1);
  20. vector<bool>vis(n+1,false);
  21. vector<int>height(n+1,0);
  22. for(int i = 0 ; i<m;i++){
  23. int u ; int v ;
  24. cin>>u>>v;
  25. adjlist[u].push_back(v);
  26. adjlist[v].push_back(u);
  27. }
  28. dfs(vis,adjlist,1,height);
  29. for(int i = 1; i<=n;i++){
  30. cout<<height[i]<<" ";
  31. }
  32. return 0;
  33. }
Success #stdin #stdout 0s 5316KB
stdin
8 7 
1 2 
1 3
3 4
4 5
1 6
2 7
3 8
stdout
4 2 3 2 1 1 1 1