Solução Informática – Nível Intermediário – Semana 8

por

Solução por Anita Ramos

Para este problema utilizaremos a ideia de vetor de marcação, para diminuir a sua complexidade e não exceder o seu tempo limite. Essa mesma ideia pode ser aplicada para vários outros problemas, contribuindo para um programa mais rápido e possivelmente mais eficiente para o que estamos buscando.

Iniciando a programação então, após adicionar a biblioteca, declarar 3 vetores zerados e declarar as demais variáveis, o programa lê o primeiros valor de entrada $$N$$ e a partir dele entramos em um loop para ler as próximas $$N$$ linhas de entrada.  Dentro desse loop também já determinamos qual a peça inicial, imprimimos sua letra, definimos seu lado direito como padrão e, para todas as peças, estabelecemos um vetor de marcação para o valor do seu lado esquerdo baseado no seu índice $$i$$. Esse vetor facilitará no processo de “encontrar a peça que corresponde ao $$padrao$$”. Assim, no próximo e último loop (que funciona até imprimirmos a palavra inteira – 1, já que a primeira letra já foi), $$i$$ assume o valor do vetor de marcação do $$padrao$$, que nada mais é que o valor o qual estamos procurando, $$padrao$$ assume o valor do lado direito da peça de índice $$i$$ e imprimimos a letra dessa mesma peça.

Segue o código comentado para melhor compreensão da solução: