마상시합 토너먼트
시간 제한1초메모리 제한256 MB
N-1명 기사의 초기 순서와 C개의 고정된 라운드 구간이 주어질 때, 실력 R인 늦은 기사가 이기는 라운드 수를 최대로 만드는 가장 작은 삽입 위치를 구한다.
문제
명의 기사가 참가하는 마상시합 토너먼트가 열린다. 기사들은 처음에 한 줄로 서며, 줄의 앞에서부터 선 순서대로 번부터 번까지 번호가 매겨진다.
각 라운드는 두 위치 와 를 부르며 시작한다 (). 현재 위치가 부터 까지인 모든 기사가 겨루어 그중 정확히 한 명이 승리한다. 승자는 다시 줄로 돌아가고 패자들은 빠지며, 남은 기사들은 상대 순서를 유지한 채 번 쪽으로 이동해 빈자리를 채운다. 따라서 승자는 위치 에 서게 되고, 남은 기사들은 번부터 (이전 길이) 번까지 다시 번호가 매겨진다. 다음 라운드도 같은 방식으로 진행되며, 마지막 한 명이 남을 때까지 계속된다.
모든 기사의 실력은 서로 다르며 부터 까지의 정수로 주어진다 (값이 클수록 실력이 좋다). 개 라운드에서 불릴 위치 범위는 미리 모두 알려져 있고, 각 라운드에서는 참가자 중 실력이 가장 높은 기사가 항상 이긴다.
명의 기사 중 명은 이미 도착해 줄을 서 있고, 가장 인기 있는 기사 한 명만 아직 도착하지 않았다. 늦게 온 기사의 실력은 이다. 축제를 최대한 즐겁게 만들기 위해, 이 기사가 이기는 라운드의 수가 가장 많아지도록 그를 배치하고 싶다. 이 기사가 참여하지 않는 라운드는 무관하며, 그가 참여해서 이기는 라운드의 수만이 중요하다.
예를 들어 현재 줄의 실력이 이고 한 라운드가 를 부르면, 위치 의 기사들(실력 )이 겨루어 실력 인 기사가 이기고, 줄은 가 된다.
입력으로 다음이 주어진다.
- : 기사의 총수 ().
- : 라운드의 수 ().
- : 늦게 온 기사의 실력. 을 포함한 모든 실력은 부터 까지의 서로 다른 정수다.
- : 이미 서 있는 명 기사의 실력을 줄에 선 순서대로 담은 배열.
- 와 : 크기가 인 배열. 인 각 에 대해 번째 라운드는 현재 위치가 부터 까지인 기사들이 참여한다. 모든 에서 이고, 는 그 라운드가 시작할 때 줄에 있는 기사 수보다 작으며, 개 라운드가 모두 끝나면 정확히 한 명만 남는 것이 보장된다.
늦게 온 기사가 이기는 라운드 수가 최대가 되도록 그를 배치할 최적의 위치 ()를 구하라. 최적의 위치가 여러 개이면 가장 작은 값을 택한다. 여기서 는 배치 후 늦게 온 기사의 위치, 즉 그 앞에 서 있는 기사의 수다. 이면 맨 앞, 이면 맨 뒤에 서는 것을 뜻한다.
입력
첫째 줄에 , , 이 주어진다. 다음 개의 줄에는 각각 의 값이 하나씩 주어진다. 이어지는 개의 줄에는 각각 와 가 주어진다.
출력
늦게 온 기사를 배치할 최적의 위치 중 가장 작은 값을 한 줄에 출력한다.