Kotlin Heroes: Episode 2 |
---|
Закончено |
Поликарпу очень нравится писать слово «kotlin». Он выписал это слово несколько раз подряд без пробелов. Например, у него могла получиться такая строка «kotlinkotlinkotlinkotlin».
Полученную строку Поликарп порезал на $$$n$$$ частей и перемешал полученные строки. В результате в настоящий момент у него есть $$$n$$$ строк $$$s_1, s_2, \dots, s_n$$$ таких, что их можно объединить в одну строку вида «kotlinkotlin...kotlin», расположив их в подходящем порядке.
Помогите Поликарпу найти такой порядок записи для строк $$$s_1, s_2, \dots, s_n$$$, что если выписать все эти строки в этом порядке, то получится повторённое один или более раз слово «kotlin».
Обратите внимание, что необходимо использовать все заданные строки и при этом каждую ровно по одному разу.
В первой строке записано целое число $$$n$$$ ($$$1 \le n \le 10^5$$$) — количество строк у Поликарпа. Далее идут сами строки. Сумма длин строк не превосходит $$$3\cdot10^5$$$. Гарантируется, что существует такой порядок последовательной записи всех $$$n$$$ строк, что в результате получится повторённое один или более раз слово «kotlin».
Выведите $$$n$$$ различных целых чисел $$$p_1, p_2, \dots, p_n$$$ ($$$1 \le p_i \le n$$$), где $$$p_i$$$ это порядковый номер (индекс) строки, которая должна идти $$$i$$$-й в искомом объединении. Иными словами, результат конкатенации $$$s_{p_1}+s_{p_2}+\dots+s_{p_n}$$$ должен иметь вид «kotlinkotlin...kotlin». Если решений, выведите любое из них.
2 lin kot
2 1
4 linkotlinkotlinkotl kotlin in kot
2 4 1 3
8 i n tlin o ko t k l
7 4 3 5 6 8 1 2
Название |
---|