1615: Наступне по величинi

Переглянути як PDF

Надіслати розвʼязок

Бали: 19,00 (частково)
Ліміт часу: 1.0s
Python 2.0s
Ліміт памʼяті: 64M
Python 250M

Автор:
Тип задачі
Дозволені мови
Assembly, Awk, Brain****, C, C++, Java, mono C#, Pascal, Perl, Python, Sed, Text, vb

Лексикографiчний порядок часто називають алфавiтним порядком при роботi з рядками. Деякий рядок бiльший, нiж iнший, якщо вiн зʼявляється пiзнiше в списку, упорядкованому лексикографiчно.

Для даного рядка ~s~ створiть новий, переставивши деякi або всi його символи. Новий рядок має вiдповiдати наступним вимогам:

  • вiн повинен бути бiльшим за даний;

  • це повинно бути найменше слово, яке вiдповiдає першiй умовi.

Наприклад, для рядка ʼabcdʼ наступне бiльше слово буде ʼabdcʼ.

Формат вхiдних даних

Перший рядок мiстить цiле число ~t~ ~(1 \le t \le 10^5)~ - кiлькiсть тестiв.

Кожен тест мiститься в окремому рядку i мiстить слово ~s~ ~(1 \le |s| \le 100)~, яке складається лише iз символiв дiапазону ʼaʼ..ʼzʼ

Формат вихiдних даних

Для кожного тесту в окремому рядку виведiть шукане слово або , у випадку його вiдсутностi, виведiть ʼno answerʼ.

Приклад вхідних даних

5
ab
bb
hefg
dhck
dkhc

Приклад вихідних даних

ba
no answer
hegf
dhkc
hcdk

Коментарі

Будь ласка, прочитайте правила перед коментуванням.



  • 0
    Hydra  прокоментовано 28 Гру. 2021, 13:05

    O(t ** |s| * * log|s|) на C++ не заходить на 100 через TLE. Збільшіть, будь ласка, обмеження, або скажіть, що моє рішення не найефективніше:)


    • 0
      zvit  прокоментовано 29 Гру. 2021, 10:40

      Бачу, розв'язок зайшов... Вітаю! Час буде збільшений лише для Пайтона


      • 0
        Hydra  прокоментовано 30 Гру. 2021, 8:18

        Дякую