[10050] Nén dữ liệu truyền tin (Run-Length Encoding)
Xem dạng PDF🤔 Mô tả bài toán:
Để tiết kiệm băng thông truyền tin qua vệ tinh, người ta nén chuỗi ký tự bằng thuật toán RLE: đếm số lần lặp liên tiếp của từng ký tự và viết dưới dạng ký tự kèm số lần lặp.
Yêu cầu: Nén chuỗi ký tự từ tệp COMPRESS.INP ghi ra tệp COMPRESS.OUT.
💾 Dữ liệu vào:
Cho từ tệp văn bản COMPRESS.INP có dạng:
Một chuỗi S chỉ gồm các chữ cái viết hoa viết liền nhau (độ dài không quá 1000 ký tự).
💻 Dữ liệu ra:
Ghi ra tệp văn bản COMPRESS.OUT gồm một dòng duy nhất: Chuỗi sau khi được nén.
🔍 Ví dụ:
| COMPRESS.INP | COMPRESS.OUT |
|---|---|
| AAABBCDDDD | A3B2C1D4 |
📌 Ràng buộc dữ liệu:
+ Không có ràng buộc đặc biệt nào.
⚠️ Lưu ý về File I/O:
Bài tập yêu cầu đọc dữ liệu từ tệp tin COMPRESS.INP và xuất kết quả ra tệp tin COMPRESS.OUT.
Lưu ý: Vui lòng dùng freopen bình thường để đọc ghi (như code mẫu khi chấm Themis).
Mẹo: Bạn hoàn toàn có thể dùng lệnh ios_base::sync_with_stdio(false); cin.tie(NULL); đi kèm với freopen để tăng tốc độ đọc ghi dữ liệu lớn!
Bình luận