Trò chơi lớn (THTB Sơn Trà, Đà Nẵng 2023)

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: 900 Thời gian: 1.0s Bộ nhớ: 1G Input: TROCHOI.INP Output: TROCHOI.OUT

Cho đoạn mật mã \(S\) chỉ gồm các chữ cái trong bảng chữ cái Latin in hoa từ ‘A’ đến ‘Z’, và một số nguyên dương \(X\). Tiến hành giải mã như sau:

Định nghĩa:

  • Nếu \(k\) là số chữ số của \(X\) thì: \(X[i]\) là chữ số thứ \(i \bmod k\) tính từ bên trái của \(X\), \(X\) bắt đầu đánh số từ 0.

Ví dụ: \(X = 123 ⇒ X[0] = 1,X[1] = 2,X[2] = 3,X[3] = 1,X[4] = 2,…\)

  • Phép tịnh tiến một chữ cái là thay nó bằng chữ cái liền sau trong bảng chữ cái Latin 'A'.. 'Z' theo vòng tròn (sau 'A' là 'B', sau ‘B’ là ‘C’, ..., sau 'Z' là 'A'). Phép tịnh tiến lên \(X\ (1≤ X≤ 9)\) là lặp lại thao tác trên \(X\) lần. Ví dụ:
    • 'A' dịch lên 1 thành 'B',
    • 'A' dịch lên 3 thành 'D',
    • 'Z' dịch lên 1 thành 'A',
    • 'Y' dịch lên 4 thành 'C'
  • Phép tịnh tiến xâu S theo X như sau: (n là độ dài xâu S)
    • \(S[0]\) dịch lên một lượng \(X[0]\)
    • \(S[1]\) dịch lên một lượng \(X[1]\)
    • \(S[2]\) dịch lên một lượng \(X[2]\)
    • ...
    • \(S[n-1]\) dịch lên một lượng \(X[n-1]\)
      Ví dụ: \(S =\) "JPBNH" tịnh tiến theo \(X = 21\) sẽ thành "LQDOJ".

Yêu cầu: Hãy tịnh tiến xâu \(S\) theo \(X\) như trên.

Dữ liệu: Nhập từ file TROCHOI.INP:

  • Dòng đầu tiền là một xâu kí tự \(S\) có tối đa \(10^6\) ký tự
  • Dòng thứ hai là một số nguyên dương \(X\ (1 ≤ X ≤ 10^9)\)

Kết quả: Ghi ra file TROCHOI.OUT:

  • Một xâu kí tự là kết quả sau khi giải mã.

Scoring

  • 50% số test có \(1≤X≤9\)
  • 50% số test không giới hạn gì thêm

Test 1

Input
JPBNH
21
Output
LQDOJ

Test 2

Input
ABCXYZ
32
Output
DDFZBB

Bình luận

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

Không có bình luận nào.

Kỳ thi: