[10050] Nén dữ liệu truyền tin (Run-Length Encoding)

Xem dạng PDF

Gửi bài giải

Điểm: 10,00
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: COMPRESS.INP
Output: COMPRESS.OUT

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Pascal, Python

🤔 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

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.