거짓말쟁이 효빈이

시간 제한2초메모리 제한512 MB

요약
서로 다른 칸에 순서대로 떨어지는 미사일이 주어질 때, 길이 a인 배 k척을 규칙에 맞게 놓을 수 없게 되는 첫 미사일의 번호를 구한다.
난이도

보통10점 중 7점

유형
이분 탐색, 그리디, 누적 합
정답자
아직 제출이 없습니다

문제

영선이와 효빈이는 전함 게임을 자주 한다. 게임판은 한 줄로 늘어선 nn칸이고, 한 사람은 공격, 다른 한 사람은 수비를 맡는다.

수비는 전함 kk개를 게임판에 배치한다. 전함 하나는 연속한 aa칸을 차지하고, 두 전함은 겹칠 수 없으며 서로 맞닿아서도 안 된다. 즉 이웃한 두 전함 사이에는 빈 칸이 적어도 하나 있어야 한다. 공격은 전함의 위치를 볼 수 없다.

배치가 끝나면 공격은 미사일을 mm번 쏜다. 미사일 한 발은 게임판의 한 칸을 공격하고, 전함을 하나라도 맞히면 공격이 이긴다.

이번 판은 영선이가 공격, 효빈이가 수비를 맡았다. 효빈이는 지기 싫어서 거짓말을 하기로 했다. 영선이는 전함의 위치를 모르므로, 효빈이는 전함이 미사일에 맞아도 맞지 않았다고 말한다. 그래도 규칙에 맞는 배치가 하나도 남지 않는 순간, 즉 전함을 어떻게 배치해도 지금까지 날아온 미사일 중 한 발에는 맞을 수밖에 없는 순간이 오면 효빈이는 패배를 인정한다.

미사일은 주어진 순서대로 발사된다. 효빈이가 몇 번째 미사일에서 패배를 인정하게 되는지 구하라.

입력

첫째 줄에 게임판의 칸 수 nn, 전함의 개수 kk, 전함 하나가 차지하는 칸 수 aa가 주어진다. (1≤n,k,a≤2000001 \le n, k, a \le 200000)

둘째 줄에 미사일의 개수 mm이 주어진다. (1≤m≤n1 \le m \le n)

셋째 줄에 미사일이 떨어지는 칸의 번호가 발사 순서대로 mm개 주어진다. 게임판의 칸에는 왼쪽부터 11번부터 nn번까지 번호가 붙어 있고, mm개의 번호는 서로 다르다. 미사일이 한 발도 떨어지지 않은 상태에서는 규칙에 맞게 전함 kk개를 배치할 수 있음이 보장된다.

출력

효빈이가 패배를 인정하게 되는 미사일이 몇 번째인지 출력한다. 마지막 미사일까지 모두 피하는 배치가 남아 있으면 −1-1을 출력한다.

예제2

  1. 예제 1

    입력
    11 3 3
    5
    4 8 6 1 11
    
    예상 출력
    3
    
  2. 예제 2

    입력
    5 1 3
    2
    1 5
    
    예상 출력
    -1