Skyline

면접 대비

시간 제한1초메모리 제한128 MB

요약
우리는 가장 가까운 건물부터 가장 먼 건물까지 나열된 N개의 사다리꼴 건물을 가지고 있습니다. 각 건물에 대해 보이는 면적의 비율, 즉 더 가까운 건물에 가려지지 않은 사다리꼴 부분을 계산해야 합니다. 겹치는 경사 지붕으로 인해 계산이 간단하지 않습니다. 주어진 건물에 대해 각 수평 좌표에서 더 가까운 모든 건물의 최대 지붕 높이를 결정해야 합니다. 그런 다음 보이는 면적은 건물 자체 범위 [x1, x2]에 대해, 건물의 상단 가장자리(지붕)와 그 최대 높이의 차이에서 양수 부분을 적분한 것입니다.이
난이도

쉬움10점 중 3점

유형
기하, 구간, 분할 정복, 동적 계획법
정답자
아직 제출이 없습니다

문제

멀리서 도시의 스카이라인을 바라보면 건물들이 서로를 부분적으로 또는 완전히 가리기 때문에, 각 건물이 실제로 얼마나 보이는지 궁금해집니다.

이 문제에서는 멀리서 본 모든 건물이 사다리꼴 모양이라고 가정합니다. 즉, 좌우 벽은 수직이지만 지붕은 기울어질 수 있습니다.

각 건물은 지면 위에 서 있는 사다리꼴입니다.

  • 왼쪽 벽: 점 (x1,0)(x_1, 0) 에서 (x1,y1)(x_1, y_1) 까지의 수직 선분
  • 오른쪽 벽: 점 (x2,0)(x_2, 0) 에서 (x2,y2)(x_2, y_2) 까지의 수직 선분
  • 지붕: 점 (x1,y1)(x_1, y_1) 에서 (x2,y2)(x_2, y_2) 까지의 선분
  • 바닥: 지면을 따라 (x1,0)(x_1, 0) 에서 (x2,0)(x_2, 0) 까지의 선분

건물들은 보는 사람과 가까운 순서대로 주어집니다. 정면에서 볼 때, 더 가까운 건물은 자기 윤곽 높이까지 그 뒤의 건물을 가립니다. 각 건물마다, 더 가까운 다른 건물에 가려지지 않고 보이는 넓이의 비율을 구하세요.

입력

첫째 줄에 건물의 수 NN 이 주어집니다 (2≤N≤1002 \le N \le 100).

다음 NN 개의 줄에는 각 건물을 나타내는 네 정수 x1x_1, y1y_1, x2x_2, y2y_2 가 주어집니다 (0≤x1<x2≤100000 \le x_1 < x_2 \le 10000, 0<y1,y2≤100000 < y_1, y_2 \le 10000).

건물은 거리 순서대로, 즉 보는 사람과 가장 가까운 건물부터 차례로 주어집니다.

출력

각 건물마다 한 줄에, 그 건물에서 보이는 부분의 비율(0 이상 1 이하의 값)을 소수점 아래 정확히 8자리까지 반올림하여 출력합니다.

테스트 데이터는 정확한 값이 반올림 경계에 놓이지 않도록 보장하므로, 올바르게 계산하면 항상 동일한 8자리 결과가 나옵니다.

힌트

그림 1: 첫 번째 테스트 케이스를 나타낸 그림.

예제2

  1. 예제 1

    입력
    4
    2 3 7 5
    4 6 9 2
    11 4 15 4
    13 2 20 2
    
    예상 출력
    1.00000000
    0.38083333
    1.00000000
    0.71428571
    
  2. 예제 2

    입력
    5
    200 1200 400 700
    1200 1400 1700 900
    5000 300 7000 900
    8200 400 8900 1300
    0 1000 10000 800
    
    예상 출력
    1.00000000
    1.00000000
    1.00000000
    1.00000000
    0.73667852