|
|
Número de Erdos
O matemático húngaro Paul Erdos (1913-1996), um dos mais
brilhantes do século XX, é considerado o mais
prolífico matemático da história. Erdos publicou
mais de 1500 artigos, em colaboração com cerca de outros
450 matemáticos. Em homenagem a este gênio
húngaro, os matemáticos criaram um número,
denominado "número de Erdos". Toda pessoa que escreveu um
artigo com Erdos tem o número 1. Todos que não possuem
número 1, mas escreveram algum artigo juntamente com
alguém que possui número 1, possuem número 2. E
assim por diante. Quando nenhuma ligacão pode ser estabelecida
entre Erdos e uma pessoa, diz-se que esta possui número de
Erdos infinito. Por exemplo, o número de Erdos de Albert
Einstein é 2. E, talvez surpreendentemente, o número de
Erdos de Bill Gates é 4.
Tarefa
Sua tarefa é escrever um programa que, a partir de uma lista de autores de artigos, determine o número de Erdos dos autores.
Entrada
Seu programa deve ler vários conjuntos de testes. A primeira
linha de um conjunto de teste contém um número inteiro A
(1 ≤ A ≤ 100), que indica o número de artigos. Cada uma
das A linhas seguintes contém a lista de autores de um
artigo. Cada autor é identificado pela inicial de seu nome (em
maiúscula) seguida pelo seu último sobrenome
(`P. Erdos', por exemplo). O sobrenome de um autor possui, no
máximo, 15 letras, e apenas a letra inicial aparece em
maiúscula. Os autores são separados por vírgulas,
e a lista de autores de um artigo termina com um ponto (veja os
exemplos abaixo). Um único espaço em branco separa a
abreviatura do nome do sobrenome, bem como o nome de um autor do
anterior. Espaços em branco não são usados em
outros locais. Um artigo possui, no máximo, 10 autores, e o
total de autores não excede 100. O final da entrada é
indicado por A = 0.
Exemplo de Entrada
5
P. Erdos, A. Selberg.
P. Erdos, J. Silva, M. Souza.
M. Souza, A. Selberg, A. Oliveira.
J. Ninguem, M. Ninguem.
P. Duarte, A. Oliveira.
2
Z. Silva, P. Erdos.
Z. Souza.
0
Saída
Para cada conjunto de teste da entrada seu programa deve produzir um
conjunto de linhas na saída. A primeira linha deve conter um
identificador do conjunto de teste, no formato "Teste n", onde n
é numerado seqüencialmente a partir de 1. A seguir devem
aparecer uma linha para cada autor do conjunto de testes (exceto o
próprio P. Erdos). Cada linha deve conter o nome do autor
seguido pelo caractere `:', um espaço em branco e o seu
número de Erdos. Caso o número de Erdos de um
determinado autor seja infinito, escreva `infinito'. A saída
deve ser ordenada pelo sobrenome do autor (em caso de mesmo sobrenome,
o desempate deve ser feito pela inicial do primeiro nome). Imprima uma
linha em branco ao final de cada conjunto de teste. A grafia mostrada
no Exemplo de Saída, abaixo, deve ser seguida
rigorosamente.
Exemplo de Saída
Teste 1
P. Duarte: 3
J. Ninguem: infinito
M. Ninguem: infinito
A. Oliveira: 2
A. Selberg: 1
J. Silva: 1
M. Souza: 1
Teste 2
Z. Silva: 1
Z. Souza: infinito
(esta saída corresponde ao exemplo de entrada acima)
Restrições
0 ≤ A ≤ 100 (número
de artigos de um caso de teste; A = 0 apenas para indicar final da
entrada)
1 ≤ K ≤ 15 (número de letras do sobrenome de um autor)
1 ≤ N ≤ 10 (número de artigos de um conjunto de teste)
1 ≤ T ≤ 10 (número total de autores em um conjunto de teste)
|