| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 | 256 MB | 220 | 11 | 7 | 4.403% |
이 문제는 Interactive 문제입니다.
샤미코는 모모의 아지트에 잠입하려고 합니다. 하지만, 모모의 아지트 문은 비밀번호로 굳게 잠겨있습니다. 비밀번호는 $1$부터 $N$까지의 정수로 이루어진 길이 $N$의 순열 $\sigma$입니다.
샤미코는 모모의 아지트에 잠입하기 위해 비밀번호를 알아내려고 합니다. 샤미코는 여러 비밀번호를 시도해보다가 잠금장치에서 나는 소리를 잘 들으면 비밀번호에 대한 정보를 알 수 있다는 점을 발견했습니다. 구체적으로는, $1$부터 $N$까지의 정수로 이루어진 길이 $N$의 순열 $\pi$를 정해서 잠금장치에 입력하면 ($\sigma$와 $\pi$의 길이가 가장 긴 공통된 부분수열의 길이) 번만큼 톱니바퀴가 돌아가는 소리가 난다는 점입니다.
샤미코는 모모가 아지트로 돌아오기 전에 잠입을 하려 합니다. 시간에 늦지 않기 위해서는 $1\,000$번 이하의 시도로 문의 잠금장치를 해제해야 합니다. 샤미코와 함께 모모의 아지트 비밀번호 $\sigma$를 알아내봅시다.
당신은 처음에 순열의 길이 $N$을 표준 입력으로부터 입력받아야 합니다.
그 이후, 당신은 매 질의를 표준 출력으로 하나의 줄에 "? $\pi_1$ $\pi_2$ $\cdots$ $\pi_N$"과 같은 형태로 출력한후 표준 출력 버퍼를 flush 해야합니다. 이는 순열 $\pi = (\pi_1, \pi_2, \cdots, \pi_N)$를 잠금장치에 입력한다는 의미입니다. 언어별로 표준 출력 버퍼를 flush하는 방법은 다음과 같습니다. 기타 언어는 각 언어의 레퍼런스 페이지를 참고하시기 바랍니다.
fflush(stdout);std::cout << std::flush;System.out.flush();sys.stdout.flush()질의 이후에, 표준 입력으로 하나의 줄에 한 개의 정수가 주어집니다. 이는 다음을 의미합니다.
$\sigma$는 첫 질의 전에 정해져 있으며, 바뀌지 않습니다.
5 3 3 5
? 1 2 3 4 5 ? 1 5 2 3 4 ? 3 1 4 5 2
$B$가 $A$의 부분수열이라는 것은, $1 \le i_1 < i_2 < \cdots < i_{\lvert B \rvert} \le \lvert A \rvert$가 존재해서 $1 \le j \le \lvert B \rvert$에 대해 $A_{i_j} = B_j$라는 것을 의미합니다.
University > 서울사이버대학교 > 2022 서울사이버대학교 프로그래밍 경진대회 (SCUPC) K번