K보다 큰 구간

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

요약
합이 k보다 큰 연속 부분 구간의 개수를 센다.
난이도

보통10점 중 5점

유형
투 포인터, 누적 합
정답자
아직 제출이 없습니다

문제

자연수 nn개로 이루어진 수열 a1,a2,…,ana_1, a_2, \dots, a_n이 주어진다. 구간 [i,j][i, j] (1≤i≤j≤n1 \le i \le j \le n)의 합 ai+ai+1+⋯+aja_i + a_{i+1} + \dots + a_j가 kk보다 큰 쌍 (i,j)(i, j)의 개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 수열의 길이 nn이 주어진다. (1≤n≤100 0001 \le n \le 100\,000)

둘째 줄에 수열을 이루는 자연수 nn개가 공백으로 구분되어 주어진다. 각 자연수는 100 000100\,000보다 크지 않다.

셋째 줄에 자연수 kk가 주어진다. (1≤k≤1 000 000 0001 \le k \le 1\,000\,000\,000)

출력

구간 합이 kk보다 큰 쌍 (i,j)(i, j)의 개수를 첫째 줄에 출력한다.

예제2

  1. 예제 1

    입력
    5
    1 2 3 2 1
    7
    
    예상 출력
    3
    
  2. 예제 2

    입력
    5
    1 1 1 1 1
    2
    
    예상 출력
    6