Строка и перестановка
시간 제한1초메모리 제한1024 MB
문자열 s와 숨겨진 순열 p가 주어질 때, 인덱스 쌍 비교 질문을 한 번만 던져 순열이 적용된 문자열 t를 찾고, 질문 수를 최소화한다.
문제
Вам дана строка , состоящая из маленьких английских букв. Жюри загадало перестановку и получило новую строку , поставив -й символ строки на -ю позицию в строке . Вам необходимо найти строку .
Для этого вы можете один раз задать вопрос, состоящий из выбранных вами пар индексов. Для пары индексов (, ) вы узнаете, верно ли, что .
Вы хотите определить искомую строку, спросив про наименьшее количество пар, то есть минимизируя значение числа , при условии, что проверяющая программа является адаптивной. Это означает, что ответ к каждому тесту может быть различен в зависимости от того, про какие пары индексов вы спрашиваете. Другими словами, ваше решение должно успешно восстанавливать строку для любой возможной перестановки .
힌트
В первом примере сделан запрос про пару индексов , в ответ получена строка <<1>>, что означает, что , и, следовательно, загадана перестановка << >>, то есть искомая строка --- <<ab>>.
Во втором примере сделан запрос про пару индексов , в ответ получена строка <<0>>, это означает, что , и, следовательно, загадана перестановка << >>, то есть искомая строка --- <<ba>>.
В третьем примере не спрашивается ни про какие пары индексов, а сразу выводится ответ --- строка <<qqq>>.
В четвертом примере была загадана перестановка << >>.