잔디 깎기

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

요약
주어진 폭을 가진 예초 경로 좌표들이 가로와 세로 방향 모두에서 75x100 잔디밭 전체를 빠짐없이 덮는지 여러 테스트케이스에 대해 판별합니다.
난이도

쉬움10점 중 3점

유형
정렬, 시뮬레이션, 구간
정답자
아직 제출이 없습니다

문제

국제대학축구대회(ICSC)는 잘 손질된 직사각형 경기장으로 유명하다. ICSC 경기장의 잔디밭은 언제나 길이 100미터, 폭 75미터이다. 잔디 깎기는 매주 특별한 작업자가 맡는데, 그는 항상 같은 방식을 쓴다. 경기장의 가로 방향과 세로 방향에 평행하도록 여러 개의 길을 정하고, 그 길을 따라 이동하며 잔디를 깎는 것이다.

ICSC는 새 작업자로 수진이를 고용했다. 수진이는 혼돈을 무척 좋아해서, 경기장을 차례대로 덮어 나가기보다 길을 무작위로 골라 시작하는 것을 즐긴다. 하지만 일을 제대로 하지 못해 ICSC에서 해고될까 봐 두려운 나머지, 당신에게 도움을 청했다.

수진이를 도와, 경기장의 잔디가 완벽하게 깎였는지 확인하는 프로그램을 작성하라. 잔디가 완벽하게 깎였다는 것은, 경기장의 모든 지점이 가로 방향으로도 세로 방향으로도 각각 최소 한 번 이상 깎였다는 뜻이다.

잔디 깎는 기계의 폭은 ww이므로, 한 길을 깎으면 그 길을 중심으로 폭 ww인 띠(양쪽 가장자리 포함)가 깎인다. 즉 좌표 cc에 놓인 길은 cc로부터 w/2w/2 이내의 모든 부분을 깎는다.

입력

각 테스트 케이스는 3개의 줄로 이루어진다.

첫째 줄에는 두 정수 nxnx(0<nx<10000 < nx < 1000)와 nyny(0<ny<10000 < ny < 1000), 그리고 잔디 깎는 기계의 폭 ww(0<w≤500 < w \le 50)가 주어진다.

둘째 줄에는 가로 방향에 평행하게 깎는 nxnx개의 길에 대한 실수 좌표 xix_i(0≤xi≤750 \le x_i \le 75)가 주어진다.

셋째 줄에는 세로 방향에 평행하게 깎는 nyny개의 길에 대한 실수 좌표 yiy_i(0≤yi≤1000 \le y_i \le 100)가 주어진다.

입력의 끝에는 0 0 0.0이 주어진다.

실수 ww, xix_i, yiy_i는 소수점 아래 7째 자리까지 주어지며, 잔디를 깎을 때 깎이는 범위에는 가장자리도 포함된다.

출력

수진이가 잔디를 완벽하게 깎았다면 YES를, 그렇지 않다면 NO를 출력한다.

예제1

  1. 예제 1

    입력
    8 11 10.0
    0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0
    0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0
    8 10 10.0
    0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0
    0.0 10.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0
    4 5 20.0
    70.0 10.0 30.0 50.0
    30.0 10.0 90.0 50.0 70.0
    4 5 20.0
    60.0 10.0 30.0 50.0
    30.0 10.0 90.0 50.0 70.0
    0 0 0.0
    
    예상 출력
    YES
    NO
    YES
    NO