페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#3177

전시장 (고등) 1s 128MB

문제

T개의 그림을 전시할 수 있는 전시장이 있다.

전시장은 정기적으로 운영을 하는데 전시가 시작되면 D일 동안 운영을 한다.

이 전시장은 사용자가 그림을 가지고 와서 전시를 요청하면 전시할 수 있는 공간이 있을 경우 접수를 받는다.

 

전시공간은 T개가 있는데 1번부터 T번까지 번호가 매겨져 있으며 전시요청이 오면 전시요청 날짜가 가장 빠른 것을 1번으로 하여 순서대로 전시를 하게 되며 T번 다음에는 다시 1번에 전시한다.

요청 날짜가 같을 경우에는 먼저 요청한 것을 먼저 전시하게 된다.

일단 전시를 시작하면 3일 동안 전시를 하게 되는데 3일 이후에 해당 공간에 전시할 그림이 없으면 새로운 그림이 전시되기 전까지 계속 전시를 한다.

 

현재까지 전시 요청이 들어온 그림이 M개가 있다.

전시가 불가능한 요청은 받지 않기 때문에 이 그림들은 모두 전시가 가능하다.

진흥이는 자신의 그림을 전시하고 싶은데 가능하면 오랫동안 전시하기를 원한다.

진흥이가 전시를 요청하고 나면 더 이상 전시요청이 없다고 가정할 때 가장 오랫동안 전시하기 위해 전시 요청 날짜를 며칠로 하면 되는지 구하는 프로그램을 작성하라.

 

<부분문제의 제약 조건>

부분문제 1 : 전체 데이터의 10%는 T가 1이다.

부분문제 2 : 전체 데이터의 20%는 T와 M의 크기가 같다.

부분문제 3 : 전체 데이터의 70%는 원래의 제약조건 이외에 아무 제약조건이 없다.


입력

입력의 첫 번째 줄에는 전시할 수 있는 그림의 수 T, 전시기간(날 수) D, 현재까지 전시요청이 접수된 그림의 수 M이 입력된다. (1 <= T <= 1000, 10 <= D <= 1000, T <= M <= 100000)

다음 줄에는 M개의 정수가 입력되는데 현재까지 접수된 그림에 대한 전시 요청 날짜이다. (날짜는 정렬되어 입력된다는 보장이 없다.)


출력

출력의 첫 번째 줄에 진흥이가 그림을 가장 오랫동안 전시하기 위한 요청 날짜를 출력한다. 만약 어떤 날짜에도 전시가 가능하지 않다면 -1을 출력한다.

예제 #1

3 15 6

1 2 3 5 7 11
5

예제 #2

3 15 8

1 2 3 5 7 11 11 12
4


출처

2018 ICT Award KOREA
로그인해야 코드를 작성할 수 있어요.