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] Mã hóa hoán vị khối theo permutation cho trước

    Mật mã hoán vị khối (block permutation cipher) là dạng đơn giản của mật mã hoán vị: bản rõ được chia thành các khối có độ dài nnn cố định, và trong mỗi khối, vị trí các ký tự được xáo trộn theo một hoán vị p=(p1,…,pn)p=(p_1,\dots,p_n)p=(p1​,…,pn​) của {1,…,n}\{1,\dots,n\}{1,…,n} cho trước — ký tự ở vị trí iii trong khối bản rõ được chuyển tới vị trí pip_ipi​ trong khối bản mã tương ứng. Nếu độ dài bản rõ không chia hết cho nnn, thêm ký tự X vào cuối cho đủ (một hoặc nhiều khối cuối được đệm).

    Cho nnn, hoán vị p1,…,pnp_1,\dots,p_np1​,…,pn​ và bản rõ (chữ in hoa A-Z, không dấu cách), hãy tính bản mã.

    Ví dụ: n=4n=4n=4, p=(3,1,4,2)p=(3,1,4,2)p=(3,1,4,2), bản rõ CODE. Ký tự vị trí 1 (C) chuyển tới vị trí p1=3p_1=3p1​=3; vị trí 2 (O) chuyển tới p2=1p_2=1p2​=1; vị trí 3 (D) chuyển tới p3=4p_3=4p3​=4; vị trí 4 (E) chuyển tới p4=2p_4=2p4​=2. Vậy bản mã (đọc theo vị trí 1..4) là OECD.

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

      Dòng 1: số nguyên nnn (1≤n≤201\le n\le 201≤n≤20) rồi đến nnn số nguyên p1,…,pnp_1,\dots,p_np1​,…,pn​ — một hoán vị của 1,…,n1,\dots,n1,…,n — cách nhau bởi dấu cách. Dòng 2: xâu bản rõ chỉ gồm chữ in hoa A-Z (độ dài từ 1 đến 10410^4104).

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

      Một dòng duy nhất là bản mã (chữ in hoa A-Z), độ dài là bội số của nnn nhỏ nhất không nhỏ hơn độ dài bản rõ (đã đệm X nếu cần).

    Ví dụ:

    Đầu vào:

    4 3 1 4 2
    CODE

    Đầu ra:

    OECD
    

    Đầu vào:

    1 1
    HELLO

    Đầu ra:

    HELLO
    

    Đang tải editor...