만드는 중입니다

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

선분의 합집합

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

요약
가격과 길이가 정해진 선분 N개가 주어집니다. 가격 합이 A인 부분집합 중 합집합 길이가 정확히 B가 되는 것이 있는지 Q개의 질의마다 판별합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 정렬, 구간
정답자
아직 제출이 없습니다

문제

NN개의 선분이 주어진다. ii번째 선분의 가격은 PiP_i이고, 길이는 LiL_i이다.

QQ개의 쿼리가 주어진다. 각 쿼리마다 다음 조건을 만족하는 선분 집합을 고를 수 있는지 판별하라.

  • 가격의 합이 정확히 AjA_j가 되도록 선분 집합을 고른다. 고른 선분들을 일차원 수직선 위에 배치하는데, 선분끼리 겹쳐도 된다. 이때 선분의 합집합의 길이가 정확히 BjB_j가 되도록 할 수 있는가?

입력

첫째 줄에 두 정수 NN과 QQ가 공백으로 구분되어 주어진다. (1≤N≤1001 \le N \le 100; 1≤Q≤200 0001 \le Q \le 200\,000)

다음 NN개의 줄에 두 정수 PiP_i와 LiL_i가 공백으로 구분되어 주어진다. (1≤Pi≤10 0001 \le P_i \le 10\,000; 1≤Li≤10 0001 \le L_i \le 10\,000)

다음 QQ개의 줄에 두 정수 AjA_j와 BjB_j가 공백으로 구분되어 주어진다. (1≤Aj≤1061 \le A_j \le 10^6; 1≤Bj≤1061 \le B_j \le 10^6)

출력

각 쿼리에 대해 조건을 만족하는 선분 집합을 고를 수 있다면 YES, 그렇지 않다면 NO를 쿼리가 주어진 순서대로 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    3 4
    3 8
    5 10
    7 11
    8 15
    5 10
    16 20
    12 7
    
    예상 출력
    YES
    YES
    NO
    NO