Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

MANUT - Manutenção

Uma empresa possui vários computadores conectados em rede. Isto possibilita que os funcionários compartilhem recursos e consigam colaborar melhor para o desempenho de suas tarefas dentro da empresa. No entanto, as máquinas não estão diretamente conectadas todas entre si. Por economia de recursos, a topologia de rede adotada apresenta apenas um subconjunto das conexões possíveis, conforme o exemplo apresentado na figura abaixo. Note que as conexões são sempre bidirecionais.

1 -- 2    6
|    |    |
|    |    |
3 -- 4 -- 5

Apesar de alguns computadores não estarem diretamente conectados entre si, eles ainda conseguem se comunicar porque existe um algoritmo de roteamento capaz de conectar dois computadores através de várias conexões diretas. No exemplo da figura, o computador 1 conseguiria se comunicar com o computador 5 através dos computadores 2 e 4 ou através dos computadores 3 e 4.

No entanto, freqüentemente as máquinas precisam passar por uma revisão de rotina. Quando uma máquina está em manutenção, ela precisa ser temporariamente desconectada da rede e levada para a oficina. Assim, o algoritmo de roteamento não tem mais como estabelecer conexões utilizando este computador, o que pode acabar desconectando duas ou mais partes da rede e prejudicando o trabalho na empresa. No exemplo dado, se o computador 2 fosse para a revisão não teríamos problema pois todas as outras máquinas ainda conseguiriam se comunicar entre si. No entanto, se o computador 4 fosse para a manutenção, as máquinas 1, 2 e 3 não conseguiriam se comunicar com as máquinas 5 e 6.

Se a remoção de uma máquina desconectar o restante da rede, impedindo que outros computadores se comuniquem, é necessário deixar uma máquina substituta em seu lugar durante o período de manutenção, o que representa um custo extra no orçamento da empresa.

Tarefa

Sua tarefa é escrever um programa que identifique quais são os computadores que precisam ser substituídos durante a sua manutenção, para que os demais continuem se comunicando através da rede.

Entrada

A entrada é constituída de vários conjuntos de teste. A primeira linha de um conjunto de teste contém dois números inteiros N e M, que indicam respectivamente o número de computadores na rede e o número de conexões diretas entre eles (1 <= N <= 400, e N-1 <= M <= N(N-1)/2). Os computadores são identificados por números de 1 a N. As M linhas seguintes contêm, cada uma, um par de números inteiros X e Y. Cada linha representa uma conexão existente na rede, indicando que os computadores X e Y possuem uma conexão direta entre si. O final da entrada é indicado por um conjunto de teste com N = M = 0. Você pode assumir que todos os conjuntos de teste representam redes conexas, onde todos os computadores conseguem se comunicar entre si através do algoritmo de roteamento.

Exemplo de Entrada
6 6
1 2
3 1
2 4
3 4
4 5
5 6
4 6
1 2
1 3
1 4
2 3
2 4
3 4
4 3
1 2
1 3
1 4
0 0

Saída

Para cada conjunto de teste da entrada seu programa deve produzir três linhas na saída. A primeira linha deve conter um identificador do conjunto de teste, no formato "Teste n", onde n é numerado a partir de 1. A segunda linha deve conter a lista com os computadores que precisam ser substituídos durante sua manutenção. Esta lista deve estar ordenada de forma crescente, e cada valor deve ser seguido de um espaço em branco. Caso nenhum dos computadores da rede precise ser substituído, escreva "nenhum" na saída. A terceira linha deve ser deixada em branco. O formato mostrado no exemplo de saída abaixo deve ser seguido rigorosamente.

Exemplo de Saída
Teste 1
4 5

Teste 2
nenhum

Teste 3
1

(esta saída corresponde ao exemplo de entrada acima)

Restrições

0 <= N <= 400 (N = 0 apenas para indicar o fim da entrada)
N - 1 <= M <= N(N - 1)/2
1 <= X <= N
1 <= Y <= N
X != Y


Adicionado por:Wanderley Guimarăes
Data:2007-03-03
Tempo limite:0.148s
Tamanho do fonte:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Linguagem permitida:Todas exceto: ASM64 CLOJURE ERL FSHARP JS-RHINO NODEJS PERL6 PY_NBC SCALA TCL VB.NET
Origem:Olimpiada Brasileira de Informatica 2003 - Seletiva

hide comments
2011-09-15 22:34:40 thiagojobson [UERN]
Pessoal, năo esquecer de considerar M == 0;

:D
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.