[10047] Mã hóa tin nhắn quân sự (Mật mã Caesar)
Xem dạng PDF🤔 Mô tả bài toán:
Trong liên lạc quân sự cổ đại, thông tin được mã hóa bằng mật mã Caesar: dịch chuyển mỗi chữ cái trong tin nhắn tiến lên K vị trí trong bảng chữ cái tiếng Anh theo vòng tròn từ A đến Z (và từ a đến z). Các ký tự không phải chữ cái (dấu cách, chữ số, dấu câu) được giữ nguyên.
Yêu cầu: Đọc tin nhắn S và bước dịch chuyển K từ tệp CAESAR.INP, ghi tin nhắn đã mã hóa ra tệp CAESAR.OUT.
💾 Dữ liệu vào:
Cho từ tệp văn bản CAESAR.INP có dạng:
* Dòng 1 chứa số nguyên dương K (1 <= K <= 25).
Dòng 2 chứa chuỗi tin nhắn S cần mã hóa (chứa khoảng trắng, độ dài không quá 1000 ký tự).
💻 Dữ liệu ra:
Ghi ra tệp văn bản CAESAR.OUT gồm một dòng duy nhất: Chuỗi tin nhắn sau khi mã hóa.
🔍 Ví dụ:
| CAESAR.INP | CAESAR.OUT |
|---|---|
| 3 Hello World! | Khoor Zruog! |
📌 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 CAESAR.INP và xuất kết quả ra tệp tin CAESAR.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