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

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

온콜

면접 대비

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

요약
분당 오류 응답 횟수 기록과 임계값 U, L, 창 길이 D가 주어질 때 경보가 켜진 횟수를 센다.
난이도

보통10점 중 5점

유형
시뮬레이션, 슬라이딩 윈도우, 구현, 배열
정답자
아직 제출이 없습니다

문제

여우 지로는 프로그래머용 소셜 네트워킹 사이트를 운영하는 회사에 다닌다. 그의 임무는 서비스를 이용할 수 없게 되었을 때 최대한 빨리 복구하는 것이다.

그의 선임은 "502 Bad Gateway"와 "503 Service Unavailable" 같은 서버 오류 응답의 빈도를 바탕으로 서비스 이용 불가를 감지하는 모니터링 시스템을 개발했다. 이 시스템은 분당 서버 오류 응답의 빈도를 기록한다. 빈도가 일정 시간 동안 높게 유지되면 경보가 발생하고 여우 지로에게 전화가 온다. 그 후 빈도가 일정 시간 동안 낮게 유지되면 경보는 해제된다.

더 자세히 말하면 경보는 다음과 같이 발생하고 해제된다.

  • 처음에는 경보가 발생하지 않은 상태이다.
  • 경보가 발생하지 않은 상태에서 최근 DD분 연속 각 분의 서버 오류 응답 빈도가 UU 이상이면 경보가 발생한다.
  • 최근 DD분 연속 각 분의 서버 오류 응답 빈도가 LL 이하이면 경보가 해제된다.

여우 지로는 경보 때문에 전화를 받은 횟수에 따라 회사에서 보상을 받을 수 있다. 지난달에는 전화를 너무 많이 받아서 경보가 몇 번 발생했는지 잊어버렸다. 여러분의 임무는 서버 오류 응답 기록을 바탕으로 경보가 발생한 횟수를 세는 것이다.

입력

입력은 다음과 같은 형식의 단일 테스트 케이스로 이루어진다.

NN UU LL DD

x_1x\_1 x_2x\_2 …\dots x_Nx\_N

첫째 줄은 네 정수 NN, UU, LL, DD로 이루어진다. NN은 서버 오류 응답 빈도 기록의 길이를 나타낸다. UU, LL, DD는 위에서 설명한 대로 모니터링 시스템의 동작을 결정하는 설정값이다. 여기서 NN과 DD는 1≤N,D≤2×1051 \le N, D \le 2 \times 10^5를 만족한다. UU와 LL은 0≤L<U≤2×1050 \le L < U \le 2 \times 10^5를 만족한다.

둘째 줄은 NN개의 정수로 이루어진다. ii번째 정수는 ii번째 분에 발생한 서버 오류 응답의 빈도를 나타낸다. 둘째 줄의 각 정수는 0 이상 2×1052 \times 10^5 이하이다.

출력

경보가 발생한 횟수를 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    15 1 0 3
    1 1 1 1 0 0 0 1 1 0 0 0 1 1 1
    
    예상 출력
    2
    
  2. 예제 2

    입력
    24 3 1 3
    1 1 3 2 3 1 1 1 3 3 3 3 1 3 3 3 1 1 1 2 1 3 3 3
    
    예상 출력
    2