만드는 중입니다

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

Codepowers

면접 대비

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

요약
초기 레이팅 X와 라운드별 변화량 A가 주어집니다. 각 질의 구간에서 레이팅이 K보다 낮은 시점의 개수를 구합니다.
난이도

보통10점 중 6점

유형
누적 합, 정렬, 세그먼트 트리
정답자
아직 제출이 없습니다

문제

효원이는 해외 유명 온라인 저지 사이트 Codepowers의 회원이다. Codepowers는 회원에게 레이팅 시스템을 제공한다. 매주 열리는 라운드에 참여하면 레이팅을 매긴다.

효원이는 라운드에 NN번 참여했다. 효원이의 초기 레이팅 XX와 각 라운드에 참여한 후 레이팅의 증감이 수열 AA로 주어진다. 수열 AA의 원소 AiA_i는 ii번째 라운드에 참여한 직후의 레이팅에서 그 라운드에 참여하기 직전의 레이팅을 뺀 값이다.

기대한 만큼 높은 레이팅을 받지 못한 효원이는 목표 레이팅보다 낮은 레이팅을 언제 받았는지 궁금해한다.

MM개의 쿼리가 주어진다. 각 쿼리마다 ll번째 라운드에 참여한 직후부터 rr번째 라운드에 참여하기 직전까지 레이팅이 KK보다 낮은 횟수를 출력하라.

입력

첫째 줄에 정수 NN, MM, KK, XX가 주어진다. (1≤N≤105,1≤M≤106,−109≤K≤109,−104≤X≤104)(1 \leq N \leq 10^5, 1 \leq M \leq 10^6, -10^9 \leq K \leq 10^9, -10^4 \leq X \leq 10^4)

둘째 줄에는 수열 AA를 이루는 정수 AiA_i가 주어진다. (−104≤Ai≤104)(-10^4 \leq A_i \leq 10^4)

셋째 줄부터 MM개의 줄에 걸쳐 쿼리가 주어진다. 각 줄에는 jj번째 쿼리의 정보 ljl_j, rjr_j가 주어진다. (1≤lj<rj≤N+1)(1 \leq l_j < r_j \leq N+1)

출력

MM개의 줄에 걸쳐 각 쿼리의 답을 출력한다.

예제1

  1. 예제 1

    입력
    10 6 1019 1000
    7 -5 5 8 1 3 6 -7 7 10
    3 6
    1 5
    4 5
    5 9
    3 8
    9 11
    
    예상 출력
    3
    4
    1
    2
    3
    0