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

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

햇빛

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

요약
각 건물 옥상이 양쪽의 더 높은 건물에 가려지지 않은 하늘 각도로 받는 일조 시간을 구합니다.
난이도

보통10점 중 7점

유형
스택, 기하, 수학
정답자
아직 제출이 없습니다

문제

로마의 임대차법은 신분과 관계없이 누구나 햇빛을 누릴 권리를 인정했다. 볕을 잘 쬐면 건강에 좋다는 사실은 그 시절에도 상당 부분 알려져 있었다.

그래서 도시 계획을 검토하는 관리가 가장 먼저 하는 일은 설계도에 그려진 건물이 이 귀한 자원을 어떻게 나누는지 재는 것이다. 서쪽에서 동쪽으로 뻗은 큰길에 건물 NN개가 서 있다. 서쪽에서 ii번째 건물은 위치 XiX_i에 높이 HiH_i로 서 있고, 두께는 0이다.

하늘은 서쪽 지평선에서 동쪽 지평선까지 180도이고, 태양은 이 180도를 12시간 동안 일정한 속도로 지난다. ii번째 건물 꼭대기, 곧 점 (Xi,Hi)(X_i, H_i)에서 하늘을 보자. 다른 건물 jj는 자기가 서 있는 쪽 지평선부터 꼭대기 (Xj,Hj)(X_j, H_j)를 향하는 방향까지의 하늘을 가린다. 그 방향이 수평보다 아래면 건물 jj는 하늘을 전혀 가리지 않는다. 이렇게 해서 가려지지 않고 남은 하늘이 AA도이면, ii번째 건물 꼭대기가 햇빛을 받는 시간은 12A/18012A/180시간이다.

건물마다 꼭대기가 햇빛을 받는 시간을 구하라.

입력

첫째 줄에 건물의 수 NN이 주어진다. (1≤N≤2×1051 \le N \le 2 \times 10^5)

다음 NN개 줄에는 건물의 위치 XiX_i와 높이 HiH_i가 미터 단위 정수로 공백을 사이에 두고 주어진다. (1≤Xi,Hi≤1091 \le X_i, H_i \le 10^9) 건물은 서쪽에서 동쪽 순서로 주어지므로 X1<X2<⋯<XNX_1 < X_2 < \cdots < X_N이다.

출력

NN개 줄에 걸쳐 ii번째 건물 꼭대기가 햇빛을 받는 시간을 소수점 아래 여섯째 자리까지 반올림해 출력한다.

예제3

  1. 예제 1

    입력
    4
    1 1
    2 2
    3 2
    4 1
    
    예상 출력
    9.000000
    12.000000
    12.000000
    9.000000
    
  2. 예제 2

    입력
    5
    100 50
    125 75
    150 100
    175 125
    200 25
    
    예상 출력
    9.000000
    9.000000
    9.000000
    12.000000
    6.935750
    
  3. 예제 3

    입력
    1
    1000000000 1000000000
    
    예상 출력
    12.000000