HSG9 Hà Nội 2025 - Mạch DNA
Xem dạng PDF

Cho 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 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 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.
Input
Một 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~.
Output
Chuỗi ký tự là mạch bổ sung của mạch mã gốc sau khi giải nén.
Sample Input 1
5A2G1A11T1C
Sample Output 1
TTTTTCCTAAAAAAAAAAAAG
Giải thích:
- Mạch mã gốc sau khi giải nén là: ~AAAAAGGATTTTTTTTTTTTC~.
- Mạch bổ sung là: ~TTTTTCCTAAAAAAAAAAAAG~.
Ràng buộc
- Có 20% số test ứng với 20% số điểm của bài thỏa 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 trong 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 thỏa 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 thỏa mãn: số lần xuất hiện liên tiếp mỗi 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