만드는 중입니다

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

컨트롤러

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

요약
각 round의 + 또는 - 기호에 맞춰 두 버튼 중 하나를 고를 때, 점수를 정확히 0으로 만들 수 있는지 컨트롤러마다 판단합니다.
난이도

보통10점 중 4점

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

문제

당신은 조부모님 댁에 있으며, 이상한 콘솔로 오래된 비디오 게임을 하고 있습니다. 컨트롤러에는 버튼이 두 개만 있고, 각 버튼에는 숫자가 적혀 있습니다.

처음 점수는 00입니다. 게임은 nn개의 라운드로 구성됩니다. 각 1≤i≤n1 ≤ i ≤ n에 대해 ii번째 라운드는 다음과 같이 진행됩니다.

화면에 기호 sis_i가 나타납니다. 기호는 + 또는 -입니다. 그다음 두 버튼 중 하나를 정확히 한 번 누릅니다. 숫자 xx가 적힌 버튼을 누르면, 기호가 +일 때 점수가 xx만큼 오르고, -일 때 xx만큼 내려갑니다. 버튼을 누르면 라운드가 끝납니다.

nn개의 라운드를 모두 마친 뒤 점수가 00이면 이깁니다.

조부모님은 여러 해에 걸쳐 서로 다른 컨트롤러를 여러 개 사 두셨고, 그 수는 qq개입니다. jj번째 컨트롤러의 두 버튼에는 aja_j와 bjb_j가 적혀 있습니다. 각 컨트롤러로 이 게임을 이길 수 있는지 판단하세요.

입력

첫째 줄에 라운드 수 nn (1≤n≤2⋅1051 ≤ n ≤ 2 \cdot 10^5)이 주어집니다.

둘째 줄에는 길이가 nn인 문자열 ss가 주어집니다. sis_i는 ii번째 라운드에 화면에 나타나는 기호입니다. ss는 +와 - 문자만 포함합니다.

셋째 줄에는 컨트롤러 수 qq (1≤q≤1051 ≤ q ≤ 10^5)가 주어집니다.

이어지는 qq개의 줄에는 각각 두 정수 aja_j와 bjb_j (1≤aj,bj≤1091 ≤ a_j, b_j ≤ 10^9)가 주어집니다.

출력

qq개의 줄을 출력합니다. jj번째 줄에는 jj번째 컨트롤러로 이 게임을 이길 수 있으면 YES, 그렇지 않으면 NO를 출력합니다.

예제3

  1. 예제 1

    입력
    8
    +-+---+-
    5
    2 1
    10 3
    7 9
    10 10
    5 3
    
    예상 출력
    YES
    NO
    NO
    NO
    YES
    
  2. 예제 2

    입력
    6
    +-++--
    2
    9 7
    1 1
    
    예상 출력
    YES
    YES
    
  3. 예제 3

    입력
    20
    +-----+--+--------+-
    2
    1000000000 99999997
    250000000 1000000000
    
    예상 출력
    NO
    YES