CSES - String Transform | Biến đổi xâu

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: 1600 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Hãy xem xét phép biến đổi xâu sau:

  1. Nối ký tự # vào xâu (giả định rằng # có thứ tự từ điển nhỏ hơn so với tất cả các ký tự khác trong xâu).
  2. Tạo tất cả các vòng quay của xâu.
  3. Sắp xếp các vòng quay theo thứ tự từ điển tăng dần.
  4. Dựa vào thứ tự này, hãy tạo một xâu mới có chứa ký tự cuối cùng của mỗi vòng quay.

Ví dụ, xâu babc trở thành babc#. Sau đó, danh sách các phép quay được sắp xếp là #babc, abc#b, babc#, bc#bac#bab. Cuối cùng tạo được xâu cb#ab.

Input

  • Dòng đầu vào duy nhất chứa xâu đã biến đổi có độ dài \(n + 1\). Mỗi ký tự của xâu gốc là một trong những a - z.

Output

  • In ra xâu gốc có độ dài \(n\).

Constraints

  • \(1 \leq n \leq 10^6\)

Example

Test 1

Input
cb#ab
Output
babc

Bình luận (2)

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