Задачи
Центр дерева
for(int i=1; i<=n; i++) { sz[i]=g[i].size(); if(sz[i]==1) { q.push(i); used[i]=1; dis[i]=0; } }
while(!q.empty())
{
int s=q.front();
q.pop();
for(int u : g[s])
{
if(!used[u])
{
sz[u]--;
if(sz[u]==1)
{
used[u]=1;
q.push(u);
dis[u]=dis[s]+1;
}
}
}
}