음이 아닌 부분합

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

요약
순환 배열에서 회전시킨 수열의 모든 접두합이 0 이상이 되는 회전의 개수를 구하는 문제입니다.
난이도

보통10점 중 5점

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

문제

nn개의 수로 이루어진 수열 a0,a1,…,an−1a_0, a_1, \dots, a_{n-1}이 주어집니다. 이 수열을 kk칸만큼 순환 이동(0≤k≤n−10 \le k \le n - 1)하면 다음 수열이 됩니다. ak,ak+1,…,an−1,a0,a1,…,ak−1.a_k, a_{k+1}, \dots, a_{n-1}, a_0, a_1, \dots, a_{k-1}. nn가지 순환 이동 중에서 다음 조건을 만족하는 것이 몇 개인지 세세요. 이동한 수열에서 앞의 ii개 수의 합이 1≤i≤n1 \le i \le n을 만족하는 모든 ii에 대해 00 이상이어야 합니다.

입력

입력은 여러 개의 테스트 케이스로 이루어져 있습니다.

각 테스트 케이스는 두 줄로 구성됩니다. 첫 줄에는 수열에 포함된 정수의 개수 nn (1≤n≤1061 \le n \le 10^6)이 주어집니다. 둘째 줄에는 수열을 나타내는 nn개의 정수 a0,a1,…,an−1a_0, a_1, \dots, a_{n-1} (−1000≤ai≤1000-1000 \le a_i \le 1000)이 주어집니다.

입력의 끝은 00 하나만 있는 줄로 표시됩니다.

출력

각 테스트 케이스에 대해, 위 조건을 만족하는 순환 이동의 개수를 한 줄에 출력하세요.

예제1

  1. 예제 1

    입력
    3
    2 2 1
    3
    -1 1 1
    1
    -1
    0
    
    예상 출력
    3
    2
    0