Problema do dicionário de sinônimos

From AdonaiMedrado.Pro.Br
Revision as of 23:19, 4 May 2009 by Adonaimedrado (Talk | contribs) (Dificuldade única)

Jump to: navigation, search

Dificuldade única

Segundo o dicionário Larousse, sinônimo é aquilo "que ou o que tem a mesma significação, ou quase idêntica".

Sua tarefa é construir um programa para identificar se uma palavra é sinônima de outra. Para executá-la, você receberá um dicionário de sinônimos e deve interpretá-lo considerando a seguinte definição:

  • Se A é sinônimo de B, B é sinônimo de A.
  • Sendo A, B e C palavras, se A é sinônimo de B e B é sinônimo de C então A é sinônimo de C.

A entrada do programa será composta por um inteiro N (1<=N<=100) e N definições de sinônimo, uma por linha, sendo que cada linha terá o formato:

palavra: palavra_sinonimo

Ou seja, uma palavra (de até 50 caracteres), seguida de dois pontos um espaço e a palavra sinônimo (também de até 50 caracteres). Por exemplo:

inocente: ingênuo

Após entrar com N e o dicionário, o usuário informará no mesmo formato acima uma expressão que deve ser avaliada como verdade, caso com base no dicionário e na regra descrita, as palavras informadas sejam sinônimas ou falso caso contrário.

Se a expressão for avaliada como verdade, o programa deve retornar uma linha com o caractere "V", caso seja falsa ou quando no mínimo uma das palavras informadas pelo usuário não esteja no dicionário de sinônimos a resposta do sistema deverá ser "F".

Exemplo 1

Entrada

2
inocente: ingênuo
ingênuo: simples
inocente: ingênuo

Saída

V

Exemplo 2

Entrada

2
inocente: ingênuo
ingênuo: simples
inocente: simples

Saída

V

Exemplo 3

Entrada

2
inocente: ingênuo
ingênuo: simples
simples: inocente

Saída

V

Exemplo 4

Entrada

3
inocente: ingênuo
ingênuo: simples
contagiar: contaminar
simples: contaminar

Saída

F

Exemplo 5

Entrada

2
inocente: ingênuo
ingênuo: simples
simples: puro

Saída

F