Từ điển

Xem dạng PDF

Gửi bài giải

Điểm: 100,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: dictinary.inp
Output: dictinary.out

Ngôn ngữ cho phép
C++, PyPy, Python

Trong tin học, thứ tự từ điển là cách sắp xếp các xâu ký tự tương tự như trong từ điển.
Một xâu ký tự ~x~ được coi là lớn hơn xâu ký tự ~y~ nếu ~x~ xuất hiện sau ~y~ trong danh sách sắp xếp theo thứ tự từ điển.

Cho một từ ~w~, hãy tạo ra một từ mới bằng cách hoán đổi một số hoặc tất cả các ký tự của nó. Từ mới này phải thỏa mãn:

  • Nó lớn hơn từ gốc ~w~.
  • Nó là từ nhỏ nhất thỏa mãn điều kiện trên.

Ví dụ:

  • Với ~w = abcd~, từ lớn tiếp theo là ~abdc~.

Input (DICTINARY.INP)

  • Dòng 1: số nguyên dương ~T~ là số lượng test (~1 ≤ T ≤ 10^5~).
  • ~T~ dòng tiếp theo: mỗi dòng chứa một xâu ký tự ~w~ chỉ gồm các chữ cái latin thường (az), độ dài ~1 ≤ |w| ≤ 100~.

Output (DICTINARY.OUT)

  • Gồm ~T~ dòng, mỗi dòng chứa kết quả tìm được:
    • Xâu ký tự nhỏ nhất lớn hơn từ gốc theo thứ tự từ điển.
    • Nếu không tìm được, in ra "no answer".

Ví dụ

DICTINARY.INP

5
ab
bb
hefg
dhck
dkhc

DICTINARY.OUT

ba
no answer
hegf
dhkc
hcdk

DICTINARY.INP

6
lmno
dcba
dcbb
abdc
abcd
fedcbabcd

DICTINARY.OUT

lmon
no answer
no answer
acbd
abdc
fedcbabdc

Giới hạn

  • ~1 ≤ T ≤ 10^5~
  • ~1 ≤ |w| ≤ 100~

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.