fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int N=1e5+10;
  4.  
  5. vector<int>g[N];
  6. int vis[N],color[N];
  7. int black=0;
  8. void dfs(int u,int co)
  9. {
  10. vis[u]=1;
  11. color[u]=co;
  12. for(auto i : g[u])
  13. {
  14. if(!vis[i])
  15. dfs(i,1-co);
  16. }
  17. }
  18. int main()
  19. {
  20.  
  21. int n,mx;
  22. while(scanf("%d",&n)==1)
  23. {
  24. int u,v;
  25. for(int i=1;i<n;i++)
  26. {cin>>u>>v;
  27. g[u].push_back(v);
  28.  
  29. g[v].push_back(u);
  30. }
  31.  
  32. dfs(1,1);
  33.  
  34. for(int i=1;i<=n;i++)
  35. if(color[i]==1)
  36. black++;
  37. long long ans=1LL*black*(n-black) - (n-1);
  38. printf("%lld\n",ans);
  39. }
  40.  
  41. }
Success #stdin #stdout 0s 18368KB
stdin
3
1 2
1 3
stdout
0