만드는 중입니다

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

SMRAD

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

요약
지폐 종류와 점점 늘어나는 불량 지폐 값이 주어질 때, 각 질문마다 불량 지폐를 쓰지 않고 금액 X를 정확히 낼 수 있는지 판단합니다.
난이도

보통10점 중 5점

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

문제

독일에서 몇 달 동안 집을 짓고 돈을 많이 번 요시프가 크로아티아로 돌아왔다. 돌아온 첫날 저녁, 그는 친구 요시파를 저녁 식사에 초대하기로 했다. 둘 다 음식과 술을 좋아해서, 요시프는 그날 저녁 ATM에 MM번 가서 매번 XiX_i 쿠나씩 인출했다. 이 ATM에는 액면가가 서로 다른 지폐가 NN종 있으며, 각 종류는 무제한으로 있다.

요시프가 돈을 인출하러 올 때마다 ATM에 안내문이 붙어 있었다. “고객 여러분, 기기 고장으로 인해 액면가 CiC_i인 지폐는 이제 냄새가 납니다. 양해해 주셔서 감사합니다!”

한번 냄새나는 지폐가 된 액면가는 그 뒤로 계속 냄새나는 지폐로 남는다.

식당에서 냄새나는 지폐와 마주치는 불편을 피하려고, 요시프는 ATM이 정확히 XiX_i 쿠나를 한 번에 지급하거나, 합이 XiX_i가 되도록 여러 번 나누어 지급할 수 있는지 알고 싶어 한다. 단, 냄새나는 지폐를 받지 않는다고 확신할 수 있어야 한다. 요시프는 항상 지급 가능한 금액만 ATM에 요청한다.

입력

첫째 줄에는 본문에 나온 자연수 NN과 MM (1≤M≤N≤50001 \le M \le N \le 5000)이 주어진다.

둘째 줄에는 공백으로 구분된 자연수 NN개 AiA_i (1≤Ai≤100001 \le A_i \le 10000, i=1…Ni=1 \dots N)가 주어진다. A1A_1은 첫 번째 종류 지폐의 액면가이고, A2A_2는 두 번째 종류의 액면가이며, 이런 식으로 ANA_N까지 이어진다.

다음 MM개의 줄에는 각각 공백으로 구분된 자연수 XiX_i와 CiC_i (1≤Xi≤100001 \le X_i \le 10000, 1≤Ci≤100001 \le C_i \le 10000)가 주어진다. XiX_i는 ii번째 방문에서 인출하려는 금액이고, CiC_i는 ii번째 방문에서 냄새나게 된 지폐의 액면가이다.

출력

MM개의 줄마다, ii번째 방문에서 냄새나는 지폐를 받지 않고 XiX_i 쿠나를 인출할 수 있으면 “DA”, 그렇지 않으면 “NE”를 출력한다.

힌트

처음 방문에서는 ATM이 5쿠나 지폐와 냄새나는 6쿠나 지폐를 줄 수도 있으므로, 11쿠나를 한 번에 요청할 수 없다. 대신 1쿠나 한 번, 5쿠나 두 번, 이렇게 세 번에 나누어 요청할 수 있다. 세 번의 지급 중 어느 것도 냄새나는 지폐로 이루어지지 않으며, 합은 원하던 11쿠나이다. 두 번째 방문에서는 냄새나는 지폐를 적어도 한 장 받을 위험 없이 11쿠나를 인출할 방법이 없다.

예제3

  1. 예제 1

    입력
    4 2
    2 5 6 1
    11 6
    11 1
    
    예상 출력
    DA
    NE
    
  2. 예제 2

    입력
    3 3
    7 2 9
    16 7
    16 9
    16 2
    
    예상 출력
    DA
    DA
    NE
    
  3. 예제 3

    입력
    5 3
    5 2 10 7 6
    13 5
    12 10
    11 7
    
    예상 출력
    NE
    DA
    NE