Олимпиадный тренинг

Задача . C. Полоска 2


Однажды Вася взял бумажную полоску из n клеток (высота полоски равна 1 клетке) и в каждой клетке написал целое число, возможно отрицательное. Ему стало интересно, сколько существует способов разрезать полоску на три части так, что суммы чисел в каждой из частей равны между собой, и в каждой части содержится целое положительное число клеток. Помогите Васе решить эту задачу.

Входные данные

В первой строке входных данных содержится целое число n (1 ≤ n ≤ 105) — количество клеток в полоске. Во второй строке содержится n чисел, разделенных пробелами — числа, записанные в клетках полоски. Эти числа целые и не превосходят по модулю 10000.

Выходные данные

Выведите число способов разрезать полоску на три непустые части так, что суммы чисел в каждой из частей равны между собой. Не забудьте, что разрезать полоску разрешается только по границам клеток.


Примеры
Входные данныеВыходные данные
1 4
1 2 3 3
1
2 5
1 2 3 4 5
0

time 1000 ms
memory 64 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя