Bài 2. Mật thư (HSG 9 Quảng Trị 2023-2024)

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1000 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: CAU2.INP Output: CAU2.OUT

Mật thư là một xâu kí tự gồm các chữ cái tiếng Anh in hoa. Để mã hóa mật thư, Ban tổ chức xếp các chữ cái theo vòng tròn: đứng sau \(A\)\(B\), đứng sau \(B\)\(C, \dots,\) đứng sau \(Z\)\(A\). Xâu mã hoá của mật thư được tạo ra bằng cách thay thế lần lượt các kí tự trong mật thư bằng xâu mã hoá tương ứng. Các kí tự trong mật thư được mã hoá như sau: Mỗi kí tự \(x\) được mã hoá là xâu \(yk\) trong đó \(k\) là một số tự nhiên được Ban tổ chức lựa chọn và \(y\) là kí tự đứng sau \(x\) một khoảng \(k\) vị trí.

Ví dụ: A7K2P2 là xâu mã hoá của xâu TIN; A7 là xâu mã hóa của \(T\) (đứng sau \(T\) một khoảng \(7\) vị trí là \(A\)), K2 là xâu mã hóa của \(I\) (đứng sau \(I\) một khoảng \(2\) vị trí là \(K\)), P2 là xâu mã hóa của \(N\) (đứng sau \(N\) một khoảng \(2\) vị trí là \(P\)).

Yêu cầu

Cho \(S\) là xâu mã hoá của mật thư, hãy tìm mật thư tương ứng với \(S\).

Input

  • Một dòng duy nhất chứa xâu \(S\) có độ dài không quá \(3 \cdot 10^5\) kí tự.

Output

  • Ghi ra xâu mật thư tìm được.

Constraints

  • \(80\%\) số điểm ứng với \(0 \le k \le 9\).
  • \(20\%\) số điểm ứng với \(0 \le k \le 10000\).

Example

Test 1

Input
U1K2Q3L4P1F3
Output
TINHOC

Scoring

  • Subtask \(1\) (\(80\%\) số điểm): \(0 \le k \le 9\).
  • Subtask \(2\) (\(20\%\) số điểm): \(0 \le k \le 10000\).

Bình luận (1)

Mới nhất
Tải bình luận...