만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

가로수길

시간 제한5초메모리 제한256 MB

요약
각 k에 대해 정수 위치에 나무를 k그루 더 심었을 때 인접한 나무 사이 거리의 최댓값이 가질 수 있는 최솟값을 구합니다.
난이도

보통10점 중 7점

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

문제

보랴는 최근 꿈에서 아주 긴 가로수길을 걸었다. 길을 따라 나무가 심어져 있었고, 임의의 두 나무 사이의 거리는 모두 정수 미터이다. 길의 맨 처음과 맨 끝에는 나무가 한 그루씩 있다.

보랴는 수학을 좋아해서 길의 아름다움을 수 하나로 나타내는 식을 만들고 싶어 했다. 그는 이웃한 두 나무 사이의 최대 거리를 계산했다. 이 값을 길의 불균등도라고 부른다. 불균등도가 작을수록 보랴의 기준에서 길이 더 아름답다.

길이 너무 길어서 산책이 오래 이어졌고, 보랴는 나무를 kk그루 더 심으면 길이 얼마나 아름다워질지 궁금해졌다. 조화를 해치지 않으려면 임의의 두 나무 사이의 거리가 모두 정수 미터여야 한다. 나무 여러 그루를 같은 지점에 심을 수 있으며, 이미 나무가 있는 지점에도 심을 수 있다. 여러 kk에 대해 불균등도의 최솟값을 구하라.

입력

첫 줄에 세 정수 nn, mm, lenlen이 주어진다(2≤n,m≤1062 \le n, m \le 10^6, 1≤len≤1091 \le len \le 10^9). 각각 이미 심어진 나무의 수, 보랴가 관심 있는 kk 값의 개수, 길의 길이이다.

둘째 줄에 nn개의 정수 a1,…,ana_1, \ldots, a_n이 주어진다(0=a1<a2<⋯<an=len0 = a_1 < a_2 < \cdots < a_n = len). aia_i는 길의 시작점부터 ii번째 나무까지의 거리(미터)이다.

셋째 줄에 mm개의 정수 k1,…,kmk_1, \ldots, k_m이 주어진다(0≤ki≤1090 \le k_i \le 10^9). 보랴의 질문이다.

출력

mm개의 실수를 출력한다. 각각은 k1,…,kmk_1, \ldots, k_m그루를 더 심었을 때 불균등도의 최솟값이다. 각 값은 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

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