Problema do dicionário de sinônimos

From AdonaiMedrado.Pro.Br
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:

  • Sendo A e B palavras não necessariamente distintas, 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".

Diferenças entre maiúsculas e minúsculas devem ser desconsideradas.

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


Exemplo 6

Entrada

6
a: b
b: c
b: d
b: e
b: f
b: g
a: g

Saída

V

Exemplo 7

Entrada

6
a: e
b: c
b: d
b: e
b: f
b: g
a: g

Saída

V

Exemplo 8

Entrada

7
a: e
b: c
b: d
b: e
b: f
b: g
h: d
a: h

Saída

V

Exemplo 9

Entrada

5
a: a
b: b
c: d
d: b
b: a
a: d

Saída

V

Exemplo 10

Entrada

2
a: b
b: a
a: b

Saída

V

Exemplo 11

Entrada

2
a: b
b: a
a: a

Saída

V