Tarefa 5 - Ribossomo alienígena

Prazo de entrega recomendado:

Nesta tarefa, você fará a transcrição de sequências genéticas. Será necessário alocar vetores dinâmicamente e manipular registros.


Terra, 26 de agosto de 2077. A humanidade teve o primeiro contato com vestígios orgânicos de alienígenas, que vivem nas profundezas de Júpiter. Em busca de respostas sobre esses seres, pesquisadores de diversas áreas foram convocados para analisar células de algumas amostras. Os biólogos envolvidos descobriram que um ribossomo dessas células transcrevia o material genético de maneira similar que os ribossomos das células humanas transcrevem DNA para RNA. O ser humano possui quatro pares de bases conhecidas, transcritas de acordo com o diagrama abaixo.

Bases de DNA: Adenina   Timina    Guanina    Citosina
                 |         |         |          |      (transcrição)
Bases de RNA: Uracila   Adenina   Citosina   Guanina

Contudo, o habitante de Júpiter possui mais bases nitrogenadas para serem transcritas e interpretas, o que torna o estudo não trivial. Para complicar ainda mais, dependendo da espécie, o DNA e o RNA alienígenas podem ter número variável de bases, cada uma representada por uma letra de nosso alfabeto, como no exemplo abaixo para uma Cicloniana (espécie encontrada em ciclones polares), ilustrada abaixo.

Bases de DNA: A B C D E F G H I J K L M
              | | | | | | | | | | | | | (transcrição)
Bases de RNA: Y Z X W R U S T V N O P Q
Foto do cicloniano vazada na internet.

Devido ao grande número de espécies distintas, a AIM (Agência de Inteligência Mundial) convocou você para automatizar e simular a transcrição de sequências genéticas por um ribossomo alienígena. Os biólogos envolvidos explicaram que para identificar corretamente uma espécie, é preciso contar e identificar cada transcrição realizada a partir de cada par de bases. Por exemplo, para um segmento de DNA AACDCC do Cicloniano, um biólogo desenharia o diagrama abaixo, em que a base C é transcrita para X três vezes.

ID:  0 1 0 0 1 2
DNA: A A C D C C
     | | | | | | (transcrição)
RNA: Y Y X W X X

Sua tarefa é escrever um programa ribossomo.c que simule a transcrição de um DNA alienígena e desenhe o diagrama correspondente.

Entrada

A primeira linha contém uma sequência de caracteres maiúsculos que representam bases de DNA. A segunda linha contém uma sequência de caracteres maiúsculos correspondendo às bases de RNA transcritas. Na terceira linha, há um número inteiro com o tamanho da sequência de DNA a ser transcrita, que é seguida por uma linha com a sequência de DNA.

<DNA padrão alienígena>
<RNA padrão alienígena>
<Tamanho do segmento do DNA alienígena>
<Segmento do DNA alienígena>

Exemplo de entrada

ABCDEFGHIJKLM
YZXWRUSTVNOPQ
6
AACDCC

Saída

A saída deverá conter o diagrama de transcrição conforme o exemplo, em que as colunas são separadas por um caractere de tabulação ou por espaço.

Exemplo de saída

ID: 	0	1	0	0	1	2
DNA:	A	A	C	D	C	C
    	|	|	|	|	|	|
RNA: 	Y	Y	X	W	X	X

Critérios

É obrigatório utilizar alocação de memória dinâmica e liberar a memória adequadamente. Considere representar uma transcrição por um registro com os dados associados.

Correção

Esta tarefa será corrigida automaticamente sempre que você realizar um git push.

Esta tarefa não será corrigida por um monitor, mas vocês são incentivados a mostrar o código a um monitor e tirar dúvidas sobre a tarefa nos horários de atendimento.

Turma AB: O peso desta tarefa é 2.