가로등

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

요약
길이 L인 수직선 위 N개 가로등에 대해 0부터 L까지 정수 위치의 어두운 정도 중 K번째로 작은 값까지 차례로 출력한다.
난이도

어려움10점 중 8점

유형
이분 탐색, 정렬, 누적 합, 수학
정답자
아직 제출이 없습니다

문제

수직선 도로 위에 NN 개의 가로등이 켜져 있다. 각 가로등의 위치는 왼쪽부터 차례대로 A_1<⋯<A_NA\_1 < \cdots < A\_N로 나타낼 수 있다.

위치 xx의 어두운 정도를, 그 위치로부터 가장 가까운 가로등까지의 거리로 정의하자. 이는 NN 개의 수 ∣A_1−x∣,⋯ ,∣A_N−x∣| A\_1 - x |, \cdots, | A\_N - x | 중에서 가장 작은 값과 같다. 여기서, ∣⋅∣| \cdot |는 절댓값 기호로, y≥0y \ge 0이면 ∣y∣:=y|y| := y, y<0y < 0이면 ∣y∣:=−y|y| := -y이다.

예를 들어, N=3N = 3 개의 가로등이 차례대로 A_1=1A\_1 = 1, A_2=4A\_2 = 4, A_3=8A\_3 = 8에 위치한다면, 00부터 1010까지 각 정수 위치의 어두운 정도는 다음과 같다.

위치001122334455667788991010
어두운 정도1100111100112211001122
가로등이 있는가?○○○

x=0x = 0부터 x=Lx = L까지 L+1L+1 개의 정수 위치의 어두운 정도를 모두 계산했을 때, 가장 작은 값부터 KK 번째로 작은 값까지 차례대로 출력하는 프로그램을 작성하라.

입력

첫 줄에 세 정수 LL, NN, KK가 공백으로 구분되어 차례대로 주어진다.

그다음 줄에 NN 개의 정수 A_1,⋯ ,A_NA\\\_1, \cdots, A\\\_N이 공백으로 구분되어 차례대로 주어진다.

출력

첫 줄부터 KK 개의 줄에 걸쳐 답을 출력한다. 이 중 ii 번째 줄에는 ii 번째로 작은 어두운 정도의 값을 출력한다.

제한

  • 주어지는 모든 수는 정수이다.
  • 1≤L≤1,000,000,000,000,000,0001 \le L \le 1\\,000\\,000\\,000\\,000\\,000\\,000
  • 1≤N≤300,0001 \le N \le 300\\,000
  • 1≤K≤500,0001 \le K \le 500\\,000
  • K≤L+1K \le L + 1
  • 0≤A_1<A_2<⋯<A_N≤L0 \le A\_1 < A\_2 < \cdots < A\_N \le L

예제4

  1. 예제 1

    입력
    10 3 4
    1 4 8
    
    예상 출력
    0
    0
    0
    1
    
  2. 예제 2

    입력
    4 5 5
    0 1 2 3 4
    
    예상 출력
    0
    0
    0
    0
    0
    
  3. 예제 3

    입력
    7 1 4
    3
    
    예상 출력
    0
    1
    1
    2
    
  4. 예제 4

    입력
    9 4 10
    0 3 6 9
    
    예상 출력
    0
    0
    0
    0
    1
    1
    1
    1
    1
    1