Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [An toàn thông tin] Caesar giữ nguyên định dạng văn bản

    Trong thực tế, văn bản cần mã hóa thường chứa cả chữ hoa, chữ thường, chữ số, dấu câu và khoảng trắng. Một cách mở rộng tự nhiên của mật mã Caesar là: chỉ dịch chuyển các ký tự chữ cái (giữ nguyên hoa/thường của chữ cái đó), còn tất cả ký tự khác (số, dấu câu, khoảng trắng, ...) được giữ nguyên tại đúng vị trí của chúng.

    Khóa dịch chuyển kkk có thể là số âm; quy ước dịch chuyển vẫn tính theo modulo 26, tức là dịch kkk tương đương với dịch ((k mod 26)+26) mod 26((k \bmod 26) + 26) \bmod 26((kmod26)+26)mod26.

    Cho xâu văn bản SSS và khóa nguyên kkk, hãy mã hóa SSS theo quy tắc trên.

    Ví dụ: với S=S = S= "Hello, World!" và k=3k = 3k=3, kết quả là "Khoor, Zruog!" (dấu phẩy, khoảng trắng và dấu chấm than được giữ nguyên; H→K vẫn hoa, e→h vẫn thường).

    • Định dạng đầu vào:

      Dòng 1: xâu văn bản SSS (độ dài từ 000 đến 100010001000 ký tự, có thể chứa chữ hoa, chữ thường, chữ số, dấu câu và khoảng trắng; không chứa ký tự xuống dòng). Dòng 2: số nguyên kkk (−109≤k≤109-10^9 \le k \le 10^9−109≤k≤109).

    • Định dạng đầu ra:

      In ra một dòng duy nhất là văn bản đã mã hóa, giữ nguyên độ dài, vị trí và định dạng hoa/thường như SSS.

    Ví dụ:

    Đầu vào:

    abcXYZ 123
    1

    Đầu ra:

    bcdYZA 123
    

    Đầu vào:

    Hello, World!
    3

    Đầu ra:

    Khoor, Zruog!
    

    Đang tải editor...