안전지대

직사각형 화면과 원형 기계의 반지름, 그리고 두께를 가진 레이저 직선들이 주어질 때, 모든 빔을 피할 수 있는 원 중심이 존재하는지 판정한다.

보통6기하구현아직 제출이 없습니다시간 제한8초메모리 제한512 MB

문제

슈팅 게임의 한 장면을 판정한다. 화면은 왼쪽 아래 꼭짓점이 (0,0)(0, 0)이고 오른쪽 위 꼭짓점이 (W,H)(W, H)인 직사각형이다. 플레이어가 조종하는 기체는 반지름 RR인 원이고, 항상 화면 안에 완전히 들어 있어야 한다.

적은 화면 밖에서 레이저를 쏜다. 레이저가 나가기 몇 초 전에 경고선이 먼저 그려지므로 레이저가 지나갈 자리를 미리 알 수 있다. ii번째 경고선은 서로 다른 두 점 (xi,1,yi,1)(x_{i,1}, y_{i,1})(xi,2,yi,2)(x_{i,2}, y_{i,2})를 지나는 무한 직선이고, 그 선을 따라 발사된 레이저는 직선까지의 거리가 tit_i 이하인 점을 모두 덮는다.

기체가 레이저와 겹치면 파괴된다. 그래서 중심이 (x,y)(x, y)인 기체가 살아남는 자리는 다음 두 조건을 모두 만족하는 자리다.

  • RxWRR \le x \le W - R이고 RyHRR \le y \le H - R이다.
  • 모든 ii에 대해 (x,y)(x, y)에서 ii번째 직선까지의 거리가 ti+Rt_i + R 이상이다.

이런 자리가 하나라도 있으면 화면에 안전지대가 있다고 한다. 경고선과 기체의 반지름이 주어질 때 안전지대가 있는지 판정하라.

입력

입력은 여러 데이터 세트로 이루어진다. 각 데이터 세트의 형식은 다음과 같다.

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

첫 줄에는 네 정수 WW, HH, NN, RR이 주어진다 (2<W6402 < W \le 640, 2<H4802 < H \le 480, 0N1000 \le N \le 100, 0<R<min(W,H)/20 < R < \min(W, H) / 2). WWHH는 화면의 너비와 높이, NN은 레이저의 개수, RR은 기체의 반지름이다.

이어지는 NN개 줄 가운데 ii번째 줄에는 ii번째 경고선이 지나는 서로 다른 두 점의 좌표와 그 레이저의 두께 tit_i가 정수로 주어진다 (0ti10000 \le t_i \le 1000). 좌표는 모두 화면 위의 정수 좌표다 (0xW0 \le x \le W, 0yH0 \le y \le H). 기체의 중심은 정수가 아닌 좌표에 놓아도 된다.

데이터 세트는 50개 이하이고, 입력의 마지막 줄에는 0 0 0 0이 주어진다. 이 줄은 처리하지 않는다.

각 데이터 세트에서 기체의 반지름이 10510^{-5}만큼 커져도 답은 바뀌지 않는다.

출력

각 데이터 세트마다 안전지대가 있으면 Yes를, 없으면 No를 한 줄에 출력한다.