Строка и перестановка

시간 제한1초메모리 제한1024 MB

요약
문자열 s와 숨겨진 순열 p가 주어질 때, 인덱스 쌍 비교 질문을 한 번만 던져 순열이 적용된 문자열 t를 찾고, 질문 수를 최소화한다.
난이도

어려움10점 중 8점

유형
정렬, 구현, 수학, 완전 탐색
정답자
아직 제출이 없습니다

문제

Вам дана строка s_1s_2…s_ns\_1 s\_2 \ldots s\_n, состоящая из nn маленьких английских букв. Жюри загадало перестановку p_1,p_2,…,p_np\_1, p\_2, \ldots, p\_n и получило новую строку tt, поставив ii-й символ строки ss на p_ip\_i-ю позицию в строке tt. Вам необходимо найти строку tt.

Для этого вы можете один раз задать вопрос, состоящий из kk выбранных вами пар индексов. Для пары индексов (a_i,b_i)(a\_i, b\_i) (1≤i≤k1 \leq i \leq k, 1≤a_i<b_i≤n1 \leq a\_i < b\_i \leq n) вы узнаете, верно ли, что p_a_i<p_b_ip\_{a\_i} < p\_{b\_i}.

Вы хотите определить искомую строку, спросив про наименьшее количество пар, то есть минимизируя значение числа kk, при условии, что проверяющая программа является адаптивной. Это означает, что ответ к каждому тесту может быть различен в зависимости от того, про какие пары индексов вы спрашиваете. Другими словами, ваше решение должно успешно восстанавливать строку tt для любой возможной перестановки p_1,p_2,…,p_np\_1, p\_2, \ldots, p\_n.

힌트

В первом примере сделан запрос про пару индексов (1,2)(1, 2), в ответ получена строка <<1>>, что означает, что p_1<p_2p\_1 < p\_2, и, следовательно, загадана перестановка p=p = <<11 22>>, то есть искомая строка --- <<ab>>.

Во втором примере сделан запрос про пару индексов (1,2)(1, 2), в ответ получена строка <<0>>, это означает, что p_1≥p_2p\_1 \geq p\_2, и, следовательно, загадана перестановка p=p = <<22 11>>, то есть искомая строка --- <<ba>>.

В третьем примере не спрашивается ни про какие пары индексов, а сразу выводится ответ --- строка <<qqq>>.

В четвертом примере была загадана перестановка <<22 33 11>>.

예제4

  1. 예제 1

    입력
    ab
    
    
    1
    
    
    예상 출력
    
    1
    1 2
    
    ab
    
  2. 예제 2

    입력
    ab
    
    
    0
    
    
    예상 출력
    
    1
    1 2
    
    ba
    
  3. 예제 3

    입력
    qqq
    
    
    
    
    예상 출력
    
    0
    
    qqq
    
  4. 예제 4

    입력
    baa
    
    
    
    10
    
    
    예상 출력
    
    2
    1 2
    1 3
    
    aba