직사각형 화면과 원형 기계의 반지름, 그리고 두께를 가진 레이저 직선들이 주어질 때, 모든 빔을 피할 수 있는 원 중심이 존재하는지 판정한다.
보통6기하구현아직 제출이 없습니다시간 제한8초메모리 제한512 MB슈팅 게임의 한 장면을 판정한다. 화면은 왼쪽 아래 꼭짓점이 (0,0)이고 오른쪽 위 꼭짓점이 (W,H)인 직사각형이다. 플레이어가 조종하는 기체는 반지름 R인 원이고, 항상 화면 안에 완전히 들어 있어야 한다.
적은 화면 밖에서 레이저를 쏜다. 레이저가 나가기 몇 초 전에 경고선이 먼저 그려지므로 레이저가 지나갈 자리를 미리 알 수 있다. i번째 경고선은 서로 다른 두 점 (xi,1,yi,1)과 (xi,2,yi,2)를 지나는 무한 직선이고, 그 선을 따라 발사된 레이저는 직선까지의 거리가 ti 이하인 점을 모두 덮는다.
기체가 레이저와 겹치면 파괴된다. 그래서 중심이 (x,y)인 기체가 살아남는 자리는 다음 두 조건을 모두 만족하는 자리다.
이런 자리가 하나라도 있으면 화면에 안전지대가 있다고 한다. 경고선과 기체의 반지름이 주어질 때 안전지대가 있는지 판정하라.
입력은 여러 데이터 세트로 이루어진다. 각 데이터 세트의 형식은 다음과 같다.
W H N R
x1,1 y1,1 x1,2 y1,2 t1
x2,1 y2,1 x2,2 y2,2 t2
...
xN,1 yN,1 xN,2 yN,2 tN
첫 줄에는 네 정수 W, H, N, R이 주어진다 (2<W≤640, 2<H≤480, 0≤N≤100, 0<R<min(W,H)/2). W와 H는 화면의 너비와 높이, N은 레이저의 개수, R은 기체의 반지름이다.
이어지는 N개 줄 가운데 i번째 줄에는 i번째 경고선이 지나는 서로 다른 두 점의 좌표와 그 레이저의 두께 ti가 정수로 주어진다 (0≤ti≤1000). 좌표는 모두 화면 위의 정수 좌표다 (0≤x≤W, 0≤y≤H). 기체의 중심은 정수가 아닌 좌표에 놓아도 된다.
데이터 세트는 50개 이하이고, 입력의 마지막 줄에는 0 0 0 0이 주어진다. 이 줄은 처리하지 않는다.
각 데이터 세트에서 기체의 반지름이 10−5만큼 커져도 답은 바뀌지 않는다.
각 데이터 세트마다 안전지대가 있으면 Yes를, 없으면 No를 한 줄에 출력한다.