Biggest
시간 제한0.4초메모리 제한1024 MB
알 수 없는 순열에서 K개의 가장 큰 값의 위치를 비교 질문으로 찾는 인터랙티브 문제이며, 처음 N-1번의 질문은 비용에 포함되지 않는다.
문제
두 플레이어 A와 B가 다음 게임을 한다. A는 정수 1, 2, …, N의 순열 p[1], p[2], ..., p[N]을 정하고, B는 그 순열을 모른다. B는 1 ≤ x, y ≤ N인 임의의 수 x와 y에 대해 "p[x]와 p[y] 중 어느 것이 더 큰가?"라는 질문을 할 수 있다. B는 처음 N − 1번의 질문이 전체 질문 횟수에 포함되지 않는다는 조건에서, 가장 큰 K개의 수(즉 N, N−1, …, N−K + 1)가 순열에서 위치한 인덱스를 가능한 한 적은 질문으로 찾으려 한다. 채점 프로그램이 A 역할을 하고, 여러분이 작성한 프로그램이 B 역할을 한다.
함수 biggest()를 작성하라. 이 함수는 채점 프로그램과 함께 컴파일되며, 질문을 던져 가장 큰 K개의 수가 순열에서 위치한 인덱스를 가능한 한 적은 질문으로 찾는다. 처음 N-1번의 질문은 전체 질문 횟수에 포함되지 않는다.
제한
- 모든 테스트에서 N = 100 000
- 1 ≤ K ≤ 100 000