[10047] Mã hóa tin nhắn quân sự (Mật mã Caesar)

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: CAESAR.INP
Output: CAESAR.OUT

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

🤔 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

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.