Kátia estava finalizando seu exercício da disciplina Estruturas de Dados, que consistia em gerar um certo número de árvores diferentes, quando notou seu erro: ela estava gerando grafos conectados, não-direcionados, com exatamente vértices e arestas, ou seja, estes grafos não eram árvores!
Embora ela consiga corrigir cada grafo rapidamente, o volume de trabalho é muito grande e o professor John marcou a entrega para amanhã! Auxilie Kátia escrevendo um programa que recebe um grafo conectado, não-direcionado, com exatamente vértices e arestas, e indique qual aresta deve ser removida para que o grafo resultante seja uma árvore.
A primeira linha da entrada contém o valor do inteiro ().
As linhas seguintes contém, cada uma, um par de vértices e (), separados por um espaço em branco, indicando que há uma aresta bidirecional entre os vértices e . É garantido que o grafo resultante é conectado e simples.
Imprima, em uma linha, o identificador da aresta a ser removida para que o grafo resultante seja uma árvore. As arestas são identificadas por um número inteiro de a , de acordo com a ordem da entrada.
Se mais de uma aresta pode ser removida para gerar uma árvore, imprima qualquer uma delas.
5
1 2
1 3
3 4
3 5
4 5
5
Explicação do exemplo 1: No primeiro caso, a remoção da aresta (que conecta os vértices e ) resulta em uma árvore. Veja a figura abaixo, onde o rótulo das arestas (em azul) são os seus identificadores:
3
3 2
1 3
2 1
1