Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#include<set>using namespace std;const int maxn = 100000+10;vector<int> G[maxn];multiset<int> son[maxn];typedef multiset<int>::iterator it;int sz[maxn],dep[maxn];int n;int ans;void dfs(int u,int fa,int d){sz[u]=1;dep[u]=d;for(int i=0;i<G[u].size();i++){int v = G[u][i];if(v==fa) continue;dfs(v,u,d+1);son[u].insert(sz[v]);sz[u]=max(sz[u],sz[v]+1);}}int main(){while(~scanf("%d",&n)){