아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Codepowers

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

요약
각 라운드 직후의 레이팅 변화가 주어질 때, 구간 [l, r)에서 레이팅이 K보다 낮은 순간의 개수를 센다.
난이도

보통10점 중 7점

유형
배열, 이분 탐색, 누적 합
정답자
아직 제출이 없습니다

문제

효원이는 해외 유명 Online Judge 사이트인 Codepowers의 회원이다. Codepowers는 회원들에게 레이팅 시스템을 제공하는데, 매주 열리는 라운드에 참여하면 레이팅을 매겨준다.

효원이는 라운드에 NN번 참여했다. 효원이의 초기 레이팅 XX와 각 라운드에 참여한 후 레이팅의 증감이 수열 AA로 주어진다. 수열 AA의 원소 A_iA\_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를 이루고 있는 정수 A_iA\_i가 주어진다. (−104≤A_i≤104)(-10^4 \leq A\_i \leq 10^4)

셋째 줄부터 MM줄에 걸쳐 쿼리가 주어진다. 각 줄에는 jj번째 쿼리의 정보 l_jl\_j, r_jr\_j가 주어진다. (1≤l_j<r_j≤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