최종병기 활

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

요약
원형 고무줄을 M개의 눈금 중 K곳에서 잘라 K개의 호로 나눌 때, K개 조각 중 가장 짧은 호의 길이를 최대로 만든다.
난이도

보통10점 중 7점

유형
이분 탐색, 그리디, 배열, 구현
정답자
아직 제출이 없습니다

문제

지훈이는 활을 직접 만들어 보기로 했다. 활은 나무로 된 활대와 고무줄로 된 활줄로 이루어지고, 활대에 활줄을 걸면 완성된다. 아버지가 목수라서 활대는 원하는 길이와 모양으로 만들어 주신다. 그래서 지훈이는 활줄에 쓸 고무줄만 준비하면 된다.

문구점에서 사 온 고무줄은 둘레가 NN인 고리 모양이다. 이 고무줄에는 홈이 MM개 파여 있고, 고무줄이 워낙 튼튼해서 홈이 파인 자리에서만 자를 수 있다. 홈의 위치 XX는 시계 12시 방향을 00으로 두고 시계 방향으로 11씩 커지므로, 00 이상 N−1N-1 이하의 정수다.

좋은 활을 만들려면 활줄이 KK겹이어야 한다. 그래서 고리를 알맞게 잘라 직선 고무줄 KK개를 얻는다. 이 KK개를 겹쳐 활대에 거는데, 활의 길이는 그중 가장 짧은 고무줄의 길이로 정해진다.

지훈이가 만들 수 있는 가장 긴 활의 길이를 구하라.

아래 그림은 N=20N = 20, M=3M = 3, X={2,4,6}X = \{2, 4, 6\}일 때의 고무줄이다.

고리 모양 고무줄과 홈의 위치

입력

첫째 줄에 고무줄의 둘레 NN, 자를 수 있는 홈의 개수 MM, 활에 필요한 고무줄 겹의 수 KK가 주어진다. 세 값은 모두 정수이고 1≤N≤1000001 \le N \le 100000, 1≤M≤min⁡(N,1000)1 \le M \le \min(N, 1000), 1≤K≤M1 \le K \le M이다.

둘째 줄부터 MM개의 줄에 홈의 위치 XX가 한 줄에 하나씩 주어진다. XX는 0≤X≤N−10 \le X \le N-1인 정수이고, 홈의 위치는 서로 다르며 오름차순으로 주어진다.

출력

만들 수 있는 가장 긴 활의 길이를 출력한다. 활을 만들 수 없으면 -1을 출력한다.

예제2

  1. 예제 1

    입력
    20 3 3
    2
    4
    6
    
    예상 출력
    2
    
  2. 예제 2

    입력
    20 3 1
    2
    4
    6
    
    예상 출력
    20