Mạch DNA
Xem dạng PDFCho mạch mã gốc DNA bốn loại nucleotide A, T, G, C. Để tiết kiệm bộ nhớ, mạch mã gốc đã được nén lại thành một chuỗi S gồm các cặp là số lần xuất hiện liên tiếp nucleotide và loại nucleotide tương ứng.
Ví dụ: Mạch mã gốc AAACAATGGGGA nén thành 3A1C2A1T4G1A.
Các nucleotide ở hai mạch của phân tử DNA liên kết với nhau theo nguyên tắc bổ sung, trong đó A liên kết với T, G liên kết với C. Do vậy, nếu biết trình tự nucleotide trên một mạch có thể suy ra trình tự của mạch còn lại.

Ví dụ: Một đoạn phân tử DNA ở sinh vật được nhân thực có trình tự nucleotide trên mạch mã gốc là AAACAATGGGGA. Trình tự nucleotide trên mạch bổ sung của đoạn DNA này là TTTGTTACCCCT.
Yêu cầu: CHo một chuỗi ký tự S mô tả mạch mã gốc DNA sau khi đã nén. Hãy lập trình xác định mạch bổ sung của mạch mã gốc sau khi giải nén.
Dữ liệu vào từ file văn bản MACHDNA.INP: Mỗi chuỗi S có độ dài không vượt quá 1000. Dữ liệu đảm bảo chuỗi sau khi giải nén có độ dài không vượt quá ~10^5~.
Kết quả ghi ra file văn bản MACHDNA.OUT: Chuỗi ký tự là mạch bổ sung của mạch mã gốc sau khi giải nén.
Sample Input
5A2G1A11T1C
Sample Output
TTTTTCCTAAAAAAAAAAAG
Giải thích
Mạch mã gốc sau khi giải nén là:
AAAAAGGATTTTTTTTTTTC
Mạch bổ sung là:
TTTTTCCTAAAAAAAAAAAG
Ràng buộc:
- Có 20% số test tương ứng với 20% số điểm của bài thoả mãn: Độ dài chuỗi S là 2, trong đó ký tự đầu tiên là chữ số, ký tự thứ hai là một rong 4 chữ cái A, T, G, C;
- Có 20% số test khác ứng với 20% số điểm của bài thoả mãn: Có duy nhất một loại nucleotide;
- Có 40% số test khác ứng với 40% số điểm của bài thoả mãn: Số lần xuất hiện liên tiếp nucleotide A, T, G, C nhỏ hơn 10;
- 20% số test còn lại ứng với 20% số điểm không có ràng buộc gì thêm.
Bình luận