TS10 Quảng Ninh 2026 - Nén xâu
Xem dạng PDF
Gửi bài giải
Điểm:
5,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
1G
Input:
stdin
Output:
stdout
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT
Cho một xâu gồm các chữ cái tiếng Anh thường. Hãy nén xâu này bằng cách thay thế mỗi đoạn gồm các ký tự giống nhau liên tiếp bằng:
Số lượng ký tự trong đoạn, theo sau là ký tự đó, nếu số lượng ký tự trong đoạn lớn hơn ~1~;
Chính ký tự đó, nếu số lượng ký tự trong đoạn bằng ~1~.
Nói cách khác, nếu một chữ cái xuất hiện liên tiếp nhiều lần, ta ghi số lần xuất hiện của nó rồi ghi chữ cái đó. Nếu chữ cái chỉ xuất hiện một lần, ta chỉ ghi chữ cái đó, không ghi số ~1~.
Input
Dòng đầu tiên chứa một số nguyên ~n~ ~(1 \le n \le 10^5)~ là độ dài của xâu ban đầu.
Dòng thứ hai chứa xâu gồm ~n~ chữ cái tiếng Anh thường.
Output
In ra một dòng duy nhất chứa xâu sau khi nén.
Scoring
| Subtask | Điểm | Ràng buộc |
|---|---|---|
| 1 | ~30\%~ | Xâu ban đầu không có hai ký tự giống nhau đứng cạnh nhau |
| 2 | ~30\%~ | Mỗi đoạn ký tự giống nhau liên tiếp có độ dài không quá ~2~ |
| 3 | ~20\%~ | ~n \le 1000~ |
| 4 | ~20\%~ | Không có ràng buộc gì thêm |
Sample Input 1
12
aaaabbcddddd
Sample Output 1
4a2bc5d
Bình luận