시간 제한메모리 제한제출정답맞힌 사람정답 비율
0.5 초 1024 MB48151534.884%

문제

$N$개의 수로 이루어진 수열이 주어진다. 우리는 이 수열을 둘 이상의 연속한 부분으로 나눈 다음 각 부분에 속하는 수들의 합을 구할 수 있다. 이 때, 합을 구한 모든 수가 같아지도록 수열을 나누는 방법의 개수를 구하는 프로그램을 작성하라.

예를 들어 수열이 $[4, -3, 1, 0, 1]$이라고 하자. $[4, -3]$, $[1]$, $[0, 1]$의 세 부분으로 나누거나, $[4, -3]$, $[1, 0]$, $[1]$의 세 부분으로 나누면 모든 부분의 합이 $1$이 된다. 이외의 방법은 없으므로, 이 입력에 대한 답은 $2$가 된다.

입력

첫 번째 줄에 하나의 정수 $N$($1 ≤ N ≤ 10^4$)이 주어진다.

두 번째 줄에는 수열에 포함된 $N$개의 정수가 공백 하나로 구분되어 순서대로 주어진다. 각 정수는 $-10^{14}$이상 $10^{14}$이하의 정수다.

출력

수열을 나누는 방법의 개수를 출력한다. 이 수가 매우 클 수 있으므로, $1\,000\,000\,007$로 나눈 나머지를 출력하도록 한다.

서브태스크

번호배점제한
12

수열에 포함된 정수가 $-1$이상 $1$이하인 입력만 주어진다.

25

추가 제약 조건 없음

예제 입력 1

5
4 -3 1 0 1

예제 출력 1

2

예제 입력 2

6
1 1 1 1 1 1

예제 출력 2

3

예제 입력 3

4
100 200 300 400

예제 출력 3

0

출처

Contest > kriiicon > 제5회 kriiicon UV번

채점 및 기타 정보

  • 예제는 채점하지 않는다.