만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

행복한 부분배열

면접 대비

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

요약
배열 A에서 모든 접두사 합이 0 이상인 부분배열의 값을 모두 더한 결과를 구합니다.
난이도

보통10점 중 5점

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

문제

배열 BB에서 인덱스 LL부터 RR까지의 부분배열 합을 F(B,L,R)F(B, L, R)라고 정의한다. 양 끝 인덱스를 포함한다. 식으로 쓰면 F(B,L,R)=BL+BL+1+⋯+BRF(B, L, R) = B_L + B_{L+1} + \cdots + B_R이다.

길이가 KK인 배열 CC의 모든 접두사 합이 0 이상이면 CC를 행복한 배열이라고 한다. 즉 F(C,1,1),F(C,1,2),…,F(C,1,K)F(C, 1, 1), F(C, 1, 2), \dots, F(C, 1, K)가 모두 0 이상이다.

정수 NN개로 이루어진 배열 A\mathbf{A}가 주어질 때, A\mathbf{A}의 모든 행복한 부분배열의 값을 더한 결과를 구하라.

입력

첫 줄에 테스트 케이스의 수 T\mathbf{T}가 주어진다. 각 테스트 케이스는 두 줄로 이루어진다. 첫 줄에는 배열 A\mathbf{A}의 길이 NN이 주어지고, 둘째 줄에는 정수 A1,A2,…,ANA_1, A_2, \dots, A_N이 주어진다.

출력

각 테스트 케이스마다 Case #x: y 형식으로 한 줄을 출력한다. 여기서 xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 주어진 배열의 모든 행복한 부분배열 값의 합이다.

제한

  • 1≤T≤1001 \le T \le 100
  • 모든 ii에 대해 −800≤Ai≤800-800 \le A_i \le 800

예제1

  1. 예제 1

    입력
    2
    5
    1 -2 3 -2 4
    3
    1 0 3
    
    예상 출력
    Case #1: 14
    Case #2: 12