Codeforces Round 650 (Div. 3) |
---|
Закончено |
Поликарп написал на доске некоторую строку $$$s$$$ из строчных букв латинского алфавита ('a'-'z'). Эта строка вам известна и задана во входных данных.
После этого он стёр какие-то буквы из строки $$$s$$$, а оставшиеся буквы он переписал в произвольном порядке. В результате он получил некоторую новую строку $$$t$$$. Её вам и предстоит найти по некоторой дополнительной информации.
Предположим, что длина строки $$$t$$$ равна $$$m$$$, а символы пронумерованы слева направо от $$$1$$$ до $$$m$$$. В таком случае вам задана последовательность из $$$m$$$ целых чисел: $$$b_1, b_2, \ldots, b_m$$$, где $$$b_i$$$ равно сумме расстояний $$$|i-j|$$$ от индекса $$$i$$$ до всех таких индексов $$$j$$$, что $$$t_j > t_i$$$ (считайте, что 'a'<'b'<...<'z'). Иными словами, для вычисления $$$b_i$$$ Поликарп находит все такие индексы $$$j$$$, что в индексе $$$j$$$ находится буква, которая стоит позже в алфавите чем $$$t_i$$$, и суммирует все значения $$$|i-j|$$$.
Например, если $$$t$$$=«abzb», то:
Таким образом, если $$$t$$$=«abzb», то $$$b=[6,1,0,1]$$$.
По заданной строке $$$s$$$ и массиву $$$b$$$ найдите любую возможную строку $$$t$$$, для которой выполняются следующие два требования одновременно:
В первой строке записано целое число $$$q$$$ ($$$1 \le q \le 100$$$) — количество наборов входных данных в тесте. Далее следуют $$$q$$$ наборов входных данных.
Каждый набор входных данных состоит из трех строк:
Гарантируется, что в каждом наборе данных входные данные таковы, что ответ существует.
Выведите $$$q$$$ строк: $$$k$$$-я из них должна содержать ответ (строку $$$t$$$) на $$$k$$$-й набор входных данных. Гарантируется, что ответ на каждый набор входных данных существует. Если ответов несколько, то выведите любой.
4 abac 3 2 1 0 abc 1 0 abba 3 1 0 1 ecoosdcefr 10 38 13 24 14 11 5 3 24 17 0
aac b aba codeforces
В первом наборе входных данных подходят такие строки $$$t$$$: «aac», «aab».
Во втором наборе входных данных подходят такие строки $$$t$$$: «a», «b», «c».
В третьем наборе входных данных подходит только строка $$$t$$$ равная «aba», но символ 'b' может быть со второй или с третьей позиции.
Название |
---|