만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

아침의 신호등

시간 제한2초메모리 제한512 MB

요약
각 신호등이 처음 초록불이 되는 시각과 초록·빨강 주기를 받아, 시속 1km로 달리는 차가 모든 신호등을 초록불에 통과하는지 판정한다.
난이도

쉬움10점 중 3점

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

문제

오늘 아침 늦게 일어나서 출근길이 급하다. 예상하지 못한 신호에 걸려 멈추면 화가 나는 성격이라, 미리 신호를 따져 보기로 했다.

집에서 회사까지 거리는 DD킬로미터이고, 그 사이에 신호등이 NN개 있다. 각 신호등에는 초록불과 빨간불이 있다. 초록불이면 신호등을 지나갈 수 있고, 빨간불이면 지나갈 수 없다. 집을 나서는 순간에는 모든 신호등이 빨간불이다. 신호등마다 처음으로 초록불이 되는 시각을 알고 있다. 그 시각이 되면 신호등은 gg분 동안 초록불이었다가 rr분 동안 빨간불이 되고, 다시 gg분 동안 초록불, rr분 동안 빨간불을 반복한다. gg와 rr은 신호등마다 다를 수 있다.

신호가 바뀌는 순간(초록불에서 빨간불로, 또는 빨간불에서 초록불로 바뀌는 순간)에 차가 신호등에 도착하면 그대로 통과한다고 하자.

차는 1분에 1킬로미터를 달리므로 전체 이동에 DD분이 걸린다. 신호등에서 한 번이라도 멈추게 되는지 판단하라.

입력

첫째 줄에 신호등의 개수 NN (1≤N≤10001 \le N \le 1000)과 이동 거리 DD (2≤D≤1092 \le D \le 10^9)가 공백으로 구분되어 주어진다.

다음 NN개 줄에 신호등 정보가 한 줄에 하나씩 주어진다. 각 줄에는 정수 네 개 xx (1≤x<D1 \le x < D), aa (1≤a≤1091 \le a \le 10^9), gg (1≤g≤1091 \le g \le 10^9), rr (1≤r≤1091 \le r \le 10^9)가 주어진다. xx는 집에서 신호등까지의 거리(킬로미터), aa는 집을 나선 뒤 그 신호등이 처음 초록불이 되기까지 걸리는 시간(분), gg는 한 주기에서 초록불이 켜져 있는 시간(분), rr은 한 주기에서 빨간불이 켜져 있는 시간(분)이다. 신호등의 위치는 모두 다르다.

출력

신호등에서 한 번도 멈추지 않고 모두 지나가면 YES를, 그렇지 않으면 NO를 출력한다.

예제5

  1. 예제 1

    입력
    1 10
    5 3 3 3
    
    예상 출력
    YES
    
  2. 예제 2

    입력
    1 10
    2 5 1 1
    
    예상 출력
    NO
    
  3. 예제 3

    입력
    3 20
    5 4 2 3
    10 1 2 2
    15 10 2 2
    
    예상 출력
    YES
    
  4. 예제 4

    입력
    2 10
    3 2 10 10
    6 2 3 2
    
    예상 출력
    NO
    
  5. 예제 5

    입력
    1 10
    5 1 4 5
    
    예상 출력
    YES