Бизнесмен Василий готовится к уплате налогов за квартал (три месяца). Действующая налоговая система в государстве, в котором Василий ведет свой бизнес, устроена таким образом, что величина налога зависит от прибыли в конце каждого месяца. Чистая прибыль бизнесмена определяется как разница между доходом и расходом. Разумеется, если бизнес идет не очень удачно, прибыль бизнесмена может быть отрицательной —в этом случае речь идет об убытке.
Все доходы и расходы Василий записывал в журнал в виде целых чисел. Теперь Василий должен подать налоговую декларацию с суммой доходов на конец каждого месяца, другими словами ему необходимо поделить последовательность записей в журнале на три непустые части.
При этом Василий хочет сделать это таким образом, чтобы прибыль в каждой части была одинаковой (возможно даже отрицательной) — в этом случае сумма налога будет минимальной. Менять порядок записей в журнале нельзя.
По имеющимся данным определите количество способов выполнить такое разбиение.
Входные данные
В первой строке входных данных содержится единственное целое число N — количество записей в журнале Василия (3 ≤ N ≤ 105).
В следующих N строках записаны целые числа ai, соответствующие записям в журнале (−108 ≤ ai ≤ 108).
Выходные данные
Программа должна вывести единственное целое число — количество способов выполнить необходимое разбиение.
Примеры
Ввод
|
Вывод
|
Пояснение
|
6
4
3
-3
5
-1
4
|
2
|
В журнале записано 6 чисел: 4, 3, −3, 5, −1, 4 Из них можно получить два разбиения: [4], [3, −3, 5, −1], [4] и [4, 3, −3], [5, −1], [4].
|
3
0
0
0
|
1
|
В журнале записаны три нуля — имеется единственное возможное разбиение [0], [0], [0], потому что в каждой записи должно быть хотя бы одно число.
|
4
3
-2
3
1
|
0
|
Выполнить подходящее разбиение невозможно.
|