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

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

구간

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

요약
x축 위의 점광원과 서로 겹치지 않는 원형 파이프가 주어질 때, 파이프에 가려 빛이 닿지 않는 x축 구간을 오름차순으로 구해 소수점 둘째 자리까지 출력한다.
난이도

어려움10점 중 8점

유형
기하, 정렬, 구간, 구현
정답자
아직 제출이 없습니다

문제

건물 지하실 천장에 점 광원이 설치되어 있고, 바닥은 빛에 매우 민감합니다. 바닥을 보호하기 위해, 바닥에서 빛을 받지 못하는(즉 파이프에 가려 그늘이 지는) 구간이 어디인지 알아내려 합니다.

상황을 2차원으로 모델링합니다. x축은 바닥과 일치합니다. 광원은 정수 좌표 (bx,by)(b_x, b_y)를 가지는 점 광원입니다. 천장 아래의 각 파이프는 원으로 나타냅니다. 파이프 ii의 중심은 정수 좌표 (ci,x,ci,y)(c_{i,x}, c_{i,y})이고 반지름은 정수 rir_i입니다. 파이프는 단단하므로 원들은 서로 겹치지 않으며, 빛을 반사하지도 통과시키지도 않습니다.

파이프에 가려 광원의 빛이 닿지 않는, 서로 겹치지 않는 x축 위의 구간들을 구하는 프로그램을 작성하세요.

입력

입력은 여러 개의 블록으로 이루어지며, 마지막 블록을 제외한 각 블록은 하나의 상황을 나타냅니다.

각 블록의 첫 번째 줄에는 파이프의 개수를 나타내는 정수 NN (0<N<5000 < N < 500)이 주어집니다. 두 번째 줄에는 광원의 좌표를 나타내는 두 정수 bxb_x와 byb_y가 공백 하나로 구분되어 주어집니다. 이어지는 NN개의 줄에는 각각 파이프 하나를 나타내는 세 정수 ci,xc_{i,x}, ci,yc_{i,y}, rir_i가 공백으로 구분되어 주어지며, ci,y+ri<byc_{i,y} + r_i < b_y를 만족합니다.

마지막 블록은 N=0N = 0인 한 줄로만 이루어지며, 입력의 끝을 나타내고 처리하지 않습니다.

출력

각 입력 블록(입력을 끝내는 블록 제외)에 대해, 빛이 닿지 않는 바닥 구간들을 출력합니다. 각 구간은 한 줄에 왼쪽 끝점과 오른쪽 끝점 두 실수를 공백 하나로 구분하여, 소수점 아래 정확히 두 자리로 반올림하여 출력합니다. 한 블록 안에서 구간들은 x좌표가 증가하는 순서로 정렬합니다. 연속한 두 블록의 결과 사이에는 빈 줄 하나를 넣어 구분합니다.

예제1

  1. 예제 1

    입력
    6
    300 450
    70 50 30
    120 20 20
    270 40 10
    250 85 20
    220 30 30
    380 100 100
    1
    300 300
    300 150 90
    1
    300 300
    390 150 90
    0
    
    예상 출력
    0.72 78.86
    88.50 133.94
    181.04 549.93
    
    75.00 525.00
    
    300.00 862.50