fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int dfs(int node,int parent,int nodes,vector<vector<int>> &adj,vector<int> &temp){
  4. int cnt=1;
  5. for(auto it:adj[node]){
  6. if(it!=parent){
  7. cnt+=(dfs(it,node,nodes,adj,temp));
  8. }
  9. }
  10. temp[node]=(nodes-cnt)*cnt+ (cnt-1)*(nodes-cnt+1) +nodes-1;
  11.  
  12. return cnt;
  13. }
  14.  
  15. void solve(){
  16.  
  17. int n,m;
  18. cin>>n>>m;
  19.  
  20. vector<vector<int>> adj(n+1);
  21. for(int i=0;i<m;i++){
  22. int u,v;
  23. cin>>u>>v;
  24. adj[u].push_back(v);
  25. adj[v].push_back(u);
  26. }
  27.  
  28. vector<int> temp(n+1);
  29. dfs(1,-1,n,adj,temp);
  30. for(int i=1;i<=n;i++) cout<<temp[i]<<" ";
  31. cout<<endl;
  32. }
  33.  
  34. int main() {
  35. // your code goes here
  36. solve();
  37. return 0;
  38. }
Success #stdin #stdout 0.01s 5276KB
stdin
3 2
1 2
2 3
stdout
4 6 4