Problema da separação das sílabas (versão light)

From AdonaiMedrado.Pro.Br
Revision as of 12:22, 15 July 2009 by Adonaimedrado (Talk | contribs) (Dificuldade única)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Dificuldade única

Geralmente um processador de textos utiliza algum algoritmo para fazer a hifenização das palavras. Neste algoritmo são consideradas posições onde a palavra pode ser divida. Por exemplo, a palavra programação têm as seguintes possibilidades para a divisão silábica:

pro-gramação
progra-mação
programa-ção

Faça um programa que, recebendo uma cadeia de caracteres (máximo de 50 caracteres) no formato abaixo, mostre todas as divisões silábicas possíveis (uma por linha) em ordem de preferência da palavra representada.

<letra0><dígito0><letra1><dígito1>...<letran><dígiton>

Onde:

  • <letran> é uma letra minúscula do alfabeto.
  • <dígiton> pode ser omitido e é um dígito de inteiro positivo no intervalo fechado entre 1 e 9.

Caso <digiton> seja um número par o ponto não pode sofre divisão silábica, caso seja impar poderá sofrer a divisão. Valores maiores são aqueles que indicam pontos onde há a preferência pela divisão.

Caso exista mais de um ponto com a mesma preferência, todas as opções devem ser exibidas, uma opção linha mostrando primeiro aquelas que o hífen aparece mais a esquerda.


Exemplo 1

Entrada

p2r4o5g2r4a5ma7ção

Saída

programa-ção
pro-gramação
progra-mação

Exemplo 2

Entrada

pro7gra9ma7ção

Saída

progra-mação
pro-gramação
programa-ção

Exemplo 3

Entrada

i2n3c4o8n2s7t6i9t8u7c2i4o5n6a4l

Saída

inconsti-tucional
incons-titucional
inconstitu-cional
inconstitucio-nal
in-constitucional