60024 가로등

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

문제

수직선 도로 위에 NN 개의 가로등이 켜져 있다. 각 가로등의 위치는 왼쪽부터 차례대로 A1<<ANA_1 < \cdots < A_N로 나타낼 수 있다.

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

예를 들어, N=3N = 3 개의 가로등이 차례대로 A1=1A_1 = 1, A2=4A_2 = 4, A3=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 번째로 작은 어두운 정도의 값을 출력한다.

제한

  • 주어지는 모든 수는 정수이다.
  • 1L10000000000000000001 \le L \le 1\,000\,000\,000\,000\,000\,000
  • 1N3000001 \le N \le 300\,000
  • 1K5000001 \le K \le 500\,000
  • KL+1K \le L + 1
  • 0A1<A2<<ANL0 \le A_1 < A_2 < \cdots < A_N \le L

서브태스크

110N=1N = 1
220N2500N \le 2\,500, L2500L \le 2\,500
3152N2 \le N. N1N-1LL을 나눈다. Ai=LN1×(i1)A_i = \frac{L}{N - 1} \times (i - 1)
420L5000000L \le 5\,000\,000
535추가 제약 조건 없음.

예제 입출력

예제 입력 1
10 3 4
1 4 8
예제 출력 1
0
0
0
1
예제 입력 2
4 5 5
0 1 2 3 4
예제 출력 2
0
0
0
0
0
예제 입력 3
7 1 4
3
예제 출력 3
0
1
1
2
예제 입력 4
9 4 10
0 3 6 9
예제 출력 4
0
0
0
0
1
1
1
1
1
1

출처

올림피아드 한국정보올림피아드 KOI 2024 2차 초등부 2번 중등부 1번 고등부 1번
solution.cpp
에디터 불러오는 중...