시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
0.5 초 | 1024 MB | 48 | 15 | 15 | 34.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$로 나눈 나머지를 출력하도록 한다.
번호 | 배점 | 제한 |
---|---|---|
1 | 2 | 수열에 포함된 정수가 $-1$이상 $1$이하인 입력만 주어진다. |
2 | 5 | 추가 제약 조건 없음 |
5 4 -3 1 0 1
2
6 1 1 1 1 1 1
3
4 100 200 300 400
0
Contest > kriiicon > 제5회 kriiicon UV번