fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const long long MaxN = 1e5 + 5;
  5.  
  6. long long n,sz[MaxN];
  7. vector<long long> a[MaxN];
  8.  
  9. void input()
  10. {
  11. cin >> n;
  12.  
  13. for(long long i=1;i<=n-1;i++)
  14. {
  15. long long u,v;
  16. cin >> u >> v;
  17. a[u].push_back(v);
  18. a[v].push_back(u);
  19. }
  20. }
  21.  
  22. void dfs(long long i,long long par,vector<long long> a[],long long sz[])
  23. {
  24. for(long long x:a[i])
  25. {
  26. if(x!=par)
  27. {
  28. dfs(x,i,a,sz);
  29. sz[i]+=sz[x];
  30. }
  31. }
  32. }
  33.  
  34. void solve()
  35. {
  36. for(long long i=1;i<=n;i++)
  37. {
  38. sz[i]=1;
  39. }
  40.  
  41. dfs(1,1,a,sz);
  42.  
  43. long long res=0;
  44.  
  45. for(long long i=2;i<=n;i++)
  46. {
  47. res+=sz[i]*(n-sz[i]);
  48. }
  49.  
  50. cout << res;
  51. }
  52.  
  53. int main()
  54. {
  55. ios_base::sync_with_stdio(0);
  56. cin.tie(0);
  57.  
  58. input();
  59. solve();
  60. }
Success #stdin #stdout 0.01s 6396KB
stdin
Standard input is empty
stdout
Standard output is empty