선분의 합집합

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

요약
각 선분에 가격과 길이가 주어질 때, 비용의 합이 정확히 A이고 합집합 길이가 정확히 B가 되도록 선분을 고를 수 있는지 쿼리마다 판별한다.
난이도

어려움10점 중 8점

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

문제

NN개의 선분이 주어진다. ii번째로 주어지는 선분의 가격은 P_iP\_i이고, 길이는 L_iL\_i이다.

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

  • 정확히 A_jA\_j의 비용을 사용해서 선분 집합을 고른다. 고른 선분들을 일차원 수직선 상에 배치하는데, 이때 선분끼리 겹치게 배치할 수도 있다. 선분의 합집합의 길이가 정확히 B_jB\_j가 되도록 할 수 있는가?

입력

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

다음 NN개의 줄에 두 정수 P_iP\_i와 L_iL\_i가 공백으로 구분되어 주어진다. (1≤P_i≤10 000(1 \le P\_i \le 10\ 000; 1≤L_i≤10 000)1 \le L\_i \le 10\ 000)

다음 QQ개의 줄에 두 정수 A_jA\_j와 B_jB\_j가 공백으로 구분되어 주어진다. (1≤A_j≤106(1 \le A\_j \le 10^6; 1≤B_j≤106)1 \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