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

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

현금 부족

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

요약
각 거래가 일어날 수 있는 날짜 범위가 주어질 때, 거래 순서를 적절히 정해 잔액이 0 미만이 되는 경우가 존재하는지 판정한다.
난이도

어려움10점 중 8점

유형
그리디, 정렬, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

최근에 세워진 "NERC"(New Era Russian Coders) 회사에는 당연히 회계 부서가 있다. 회계 부서는 회사의 예산을 매우 걱정한다. 특히 회사가 현금 부족을 겪지 않기를 바란다. 현금 부족이란 지금 계좌에 있는 돈보다 더 많은 돈을 지불해야 하는 상황을 말한다.

현재 회사의 계좌에는 ss유로가 있다. 회계 책임자는 앞으로 mm일 동안의 거래 계획을 세웠다. 이 기간에 nn건의 거래가 예정되어 있다.

각 거래가 회사 계좌에 일으키는 변화는 알려져 있지만, 거래가 일어나는 정확한 날짜는 알 수 없다. 고객이 보낸 돈이 계좌에 즉시 입금되지 않을 수도 있고, 반대로 청구서 지불 요구가 갑자기 들어올 수도 있다. 각 거래에 대해서는 미리 그 거래가 일어날 수 있는 날짜의 범위만 알려져 있다. 여러 거래가 같은 날에 일어난다면, 임의의 순서로 처리할 수 있다.

회사가 현금 부족을 겪도록 하는 거래 순서가 존재하는지 회계 부서를 도와 확인하라.

입력

첫째 줄에 정수 nn, mm, ss가 주어진다. nn은 결제의 수, mm은 계획의 일수, ss는 회사가 가진 초기 금액이다 (1⩽n,m⩽10001 \leqslant n, m \leqslant 1000; 1⩽s⩽1061 \leqslant s \leqslant 10^6).

다음 nn개 줄의 ii번째 줄에는 ii번째 결제가 "countfrom˜to˜\mathtt{count}\~\mathtt{from}\~\mathtt{to}" 형식으로 주어진다. 이는 from\mathtt{from}일부터 to\mathtt{to}일까지 중 임의의 날에 금액이 count\mathtt{count}유로만큼 변한다는 뜻이다 (−106⩽count⩽106-10^6 \leqslant \mathtt{count} \leqslant 10^6; 1⩽from⩽to⩽m1 \leqslant \mathtt{from} \leqslant \mathtt{to} \leqslant m).

출력

현금 부족이 일어날 수 있으면 "YES"를, 그러한 상황이 불가능하면 "NO"를 출력한다.

힌트

첫 번째 예시에서는 계좌에서 나가는 이체가 하나뿐이므로 그 이체 전에 계좌에 적어도 100100유로가 남아 있다. 따라서 현금 부족은 불가능하다.

두 번째 예시에서는 계좌에서 나가는 두 이체(100100유로와 11유로)가 둘째 날에 다른 모든 거래보다 먼저 요청될 수 있다. 이 경우 두 번째 거래가 일어날 때 계좌에 남은 돈이 없다. 이것이 현금 부족이다.

예제2

  1. 예제 1

    입력
    4 3 100
    100 1 2
    -100 1 2
    1 2 3
    0 3 3
    
    예상 출력
    NO
    
  2. 예제 2

    입력
    4 3 100
    100 1 2
    -100 1 2
    1 2 3
    -1 2 2
    
    예상 출력
    YES