Encontrar o centróide de uma árvore

Recebe-se uma árvore com v vértices e o objetivo é identificar o centróide dessa árvore. O centróide de uma árvore é um vértice cuja remoção garante que todos os subárvores remanescentes tenham, no máximo, nós.

Entrada

A primeira linha da entrada contém um único inteiro v (1 ≤ v ≤ 100 000).
As seguintes v-1 linhas contêm pares de inteiros v1, v2 (1 ≤ v1, v2 ≤ v), o que significa que o vértice v1 está ligado ao vértice v2 e vice-versa.

Saída

O programa deve imprimir o centróide da árvore dada. Se houver várias respostas possíveis, o programa pode imprimir qualquer uma delas.

Exemplos

Entrada
Saída
3 1 2 1 3
1
5 1 2 2 3 3 4 3 5
3
Dica
Pode calcular o tamanho de cada subárvore (isto é, quantos nós filhos ela contém).
Depois, verifique para todos os subárvores de cada nó se o tamanho de cada uma delas é menor ou igual a metade do número total de vértices da árvore (some também v-currentNodeSize para considerar a parte da árvore acima do nó atual).
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue