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

Перегляд у форматі PDF

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

Бали: 19
Time limit: 1.0s
Python 2.0s
Memory limit: 64M
Python 250M

Author:
Problem type

Лексикограф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  commented on Гру. 28, 2021, 3:05 після полудня

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


    • 0
      zvit  commented on Гру. 29, 2021, 12:40 після полудня

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


      • 0
        Hydra  commented on Гру. 30, 2021, 10:18 до полудня

        Дякую