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 n 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) của {1,…,n} cho trước — ký tự ở vị trí i trong khối bản rõ được chuyển tới vị trí pi trong khối bản mã tương ứng. Nếu độ dài bản rõ không chia hết cho n, thêm ký tự X vào cuối cho đủ (một hoặc nhiều khối cuối được đệm).
Cho n, hoán vị p1,…,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=4, p=(3,1,4,2), bản rõ CODE. Ký tự vị trí 1 (C) chuyển tới vị trí p1=3; vị trí 2 (O) chuyển tới p2=1; vị trí 3 (D) chuyển tới p3=4; vị trí 4 (E) chuyển tới p4=2. Vậy bản mã (đọc theo vị trí 1..4) là OECD.
Dòng 1: số nguyên n (1≤n≤20) rồi đến n số nguyên p1,…,pn — một hoán vị của 1,…,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 104).
Một dòng duy nhất là bản mã (chữ in hoa A-Z), độ dài là bội số của n 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...