Строка и перестановка
문제
Вам дана строка , состоящая из маленьких английских букв. Жюри загадало перестановку и получило новую строку , поставив -й символ строки на -ю позицию в строке . Вам необходимо найти строку .
Для этого вы можете один раз задать вопрос, состоящий из выбранных вами пар индексов. Для пары индексов (, ) вы узнаете, верно ли, что .
Вы хотите определить искомую строку, спросив про наименьшее количество пар, то есть минимизируя значение числа , при условии, что проверяющая программа является адаптивной. Это означает, что ответ к каждому тесту может быть различен в зависимости от того, про какие пары индексов вы спрашиваете. Другими словами, ваше решение должно успешно восстанавливать строку для любой возможной перестановки .
힌트
В первом примере сделан запрос про пару индексов , в ответ получена строка <<1>>, что означает, что , и, следовательно, загадана перестановка << >>, то есть искомая строка --- <<ab>>.
Во втором примере сделан запрос про пару индексов , в ответ получена строка <<0>>, это означает, что , и, следовательно, загадана перестановка << >>, то есть искомая строка --- <<ba>>.
В третьем примере не спрашивается ни про какие пары индексов, а сразу выводится ответ --- строка <<qqq>>.
В четвертом примере была загадана перестановка << >>.
예제
예제 1
ab 1
1 1 2 ab
예제 2
ab 0
1 1 2 ba
예제 3
qqq
0 qqq
예제 4
baa 10
2 1 2 1 3 aba