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
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.