Trong mật mã học, mật mã Ceasar, hay còn gọi là mật mã dịch chuyển, là một trong những hệ mật mã đơn giản và được biết đến nhiều nhất.
Hệ mã Ceasar hoạt động trên bảng chữ cái tiếng Anh 26 kí tự. Cho một đoạn văn bản rõ ~m~ và một khóa ~k~, mật mã sẽ tạo ra bản mã ~c~ bằng cách thay thế mỗi chữ cái trong bản rõ ~m~ bằng một chữ cái nằm trong bảng chữ cái cách nó ~k~ kí tự.
Ví dụ với đoạn văn bản m="ATTACKATDAWN"
và một khóa k=3
, mỗi chứ cái trong văn bản sẽ được thay thế bằng chữ cái cách nó 3 kí tự trong bảng chữ cái:
A
sẽ được thay thế bằngD
T
sẽ được thay thế bằngW
C
sẽ được thay thế bằngF
- ...
Sau khi thay thế xong ta được bản mã c="DWWDFNDWGDZQ"
Ngoài ra, khi gặp các kí tự không nằm trong bảng chữ cái như khoảng trắng, chữ số, kí tự đặc biệt,...ta để nguyên kí tự đó như ban đầu.
Ví dụ m="I LOVE TLU 2023 <3", k=7
-> c="P SVCL ASB 2023 <3"
Nếu trong quá trình dịch chuyển chữ cái đang xét vượt ra khỏi bảng chữ cái thì nó sẽ được dịch chuyển kí tự đầu tiên trong bảng chữ cái (chữ A). Ví dụ m="XYZ", k=3
-> c="ABC"
Chủ nhiệm TAS Nguyễn Văn Hiếu nhận được 1 xâu mã hóa ~c~ và key ~k~ từ thầy cố vấn Trương Xuân Nam, tuy nhiên anh ấy quá bận nên không kịp giải mã xem xâu này có ý nghĩa gì. Vì vậy anh ấy đặt niềm tin vào bạn - một người đam mê lập trình sẽ giúp anh ấy kịp giải mã thông điệp bí ẩn này.
Cho bản mã ~c~ (gồm toàn các chữ cái viết hoa, các kí tự đặc biệt, khoảng trắng và số) và khóa ~k~, hãy tìm ra bản rõ ~m~
Input:
- Dòng đầu tiên gồm 2 số nguyên ~n~ (~n <= 10^6~) và ~k~ (~1 <= k <= 10^{12}~) là độ dài của bản mã và giá trị khóa ~k~
- Dòng thứ là bản mã ~c~
Output:
- Bản rõ ~m~
Sample Input 1
13 100
PDWK ZAL PNWE
Sample Output 1
THAO DEP TRAI
Sample Input 2
13 123456
Q_TWDM_BIA :v
Sample Output 2
I_LOVE_TAS :v
Bình luận