아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

거리 두기

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

요약
직선 위에 있는 사람들이 서로 D 이상 떨어지도록 재배치하는 최소 시간을, 사람을 한 명씩 추가할 때마다 구합니다.
난이도

어려움10점 중 8점

유형
이분 탐색, 세그먼트 트리, 정렬, 그리디
정답자
아직 제출이 없습니다

문제

코로나19 대유행은 많은 면에서 세상을 놀라게 했다. 거의 하룻밤 사이에 전 세계 사람들은 새로운 생활 방식에 적응해야 했고, 그 방식은 주로 지역 당국이 내린 예방 조치에 따라 형성되었다. 모든 조치의 목표는 질병의 확산을 억제하고 통제하는 것이었다.

더 파괴적인 유행이 먼 미래에 일어날 가능성은 낮지만, 그 상황에 대비하기 위해 크로아티아 국립 공중보건연구소는 여러 연구 부서를 열었다. 이 부서들의 주된 목표는 일반 대중이 새로운 예방 조치를 빠르게 따를 수 있도록 매우 효율적인 프로토콜을 개발하는 것이다.

Alenka는 그중 한 부서에서 일한다. 그녀는 사람들이 한 줄로 서 있는 상황을 조사한다. 예를 들어 우체국 앞에 줄을 선 경우다. 여기에 새로운 안전 수칙이 시행되어, 임의의 두 사람 사이의 거리가 최소 DD 이상이어야 한다고 정해졌다.

Alenka는 앱도 만들었다. 사용자는 거리 DD와 선 위에 있는 NN명의 위치 좌표를 입력한다. 앱은 선을 그리고, 집단이 수칙을 만족하는 배치에 도달하는 데 걸리는 최소 시간 toptt_{opt}(초)를 계산한다. 앱은 사람들이 즉시 최적으로 재배치를 시작하며, 모든 사람이 초당 1 단위의 같은 일정한 속력으로 움직인다고 가정한다.

이제 그녀는 사용자가 선을 탭하여 위치를 찍는 방식으로 MM명을 추가할 수 있는 기능을 넣으려 한다. 앱은 탭할 때마다, 즉 새로운 사람이 집단에 추가될 때마다 toptt_{opt}를 다시 계산해야 한다.

Alenka가 이 기능을 구현하도록 도와라.

입력

첫 번째 줄에 세 정수 NN, MM, DD가 주어진다.

두 번째 줄에는 처음 있던 NN명의 위치 a1,…,aNa_1, \dots, a_N이 주어진다.

세 번째 줄에는 추가되는 MM명의 위치 b1,…,bMb_1, \dots, b_M이 주어진다.

출력

한 줄에 MM개의 수를 출력한다. ii번째 수는 집단이 a1,a2,…,aN,b1,…,bia_1, a_2, \dots, a_N, b_1, \dots, b_i 위치에 있는 (N+i)(N + i)명일 때의 toptt_{opt} 값이다.

각 수는 소수점 뒤에 불필요한 0이 없는 10진수 표기로 출력한다. 예를 들어 1.2300 대신 1.23을, 123.이나 123.0 대신 123을 출력한다. 모든 답은 유한한 소수 표현을 가짐을 증명할 수 있다.

제한

모든 서브태스크에서 1≤D,a1,…,aN,b1,…,bM≤1091 \le D, a_1, \dots, a_N, b_1, \dots, b_M \le 10^9이다.

예제3

  1. 예제 1

    입력
    2 1 2
    1 3
    2
    
    예상 출력
    1
    
  2. 예제 2

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

    입력
    3 3 3
    3 3 3
    3 3 3
    
    예상 출력
    4.5 6 7.5