흥미로운 수열

시간 제한1초메모리 제한128 MB

요약
각 시작 위치에서 앞쪽 절반 합과 뒤쪽 절반 합이 모두 S 이하인 최대 길이의 구간을 접두합과 이분 탐색으로 구하는 문제입니다.
난이도

보통10점 중 6점

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

문제

길이가 2K인 수열이 있다. 앞의 K개 원소의 합과 뒤의 K개 원소의 합이 모두 S 이하이면, 이 수열을 흥미로운 수열이라고 한다.

길이가 N인 수열 A가 주어진다. 각 위치에서 시작하는 연속 부분 수열 중 흥미로운 수열이 되는 가장 긴 길이를 구하라.

입력

첫째 줄에 N과 S가 주어진다. (2 <= N <= 100,000, 1 <= S <= 2 * 10^9)

둘째 줄부터 N개의 줄에 수열 A의 원소가 한 줄에 하나씩 주어진다. 모든 원소는 양수이고, A의 모든 원소의 합은 2 * 10^9를 넘지 않는다.

출력

총 N개의 줄을 출력한다. i번째 줄에는 i번째 원소에서 시작하는 가장 긴 흥미로운 연속 부분 수열의 길이를 출력한다. 그런 수열이 없으면 0을 출력한다.

예제3

  1. 예제 1

    입력
    5 10000
    1
    1
    1
    1
    1
    
    예상 출력
    4
    4
    2
    2
    0
    
  2. 예제 2

    입력
    5 9
    1
    1
    10
    1
    9
    
    예상 출력
    2
    0
    0
    2
    0
    
  3. 예제 3

    입력
    8 3
    1
    1
    1
    1
    1
    1
    1
    1
    
    예상 출력
    6
    6
    6
    4
    4
    2
    2
    0