把一条带子掰成三截


Submit solution

Points: 100
Time limit: 1.0s
Memory limit: 80M

Author:
Problem type
Allowed languages
C, C++

CF21C Stripe 2(把一条带子掰成三截)

题目简介

你有一条由 (n) 个整数拼起来的"带子":(\(a_1,a_2,\ldots,a_n\))。 现在把这条带子正好切两刀,分成三段(每个元素必须属于且只属于其中一段),想一想——有没有办法让三段的元素和都一样

你的任务:数一数有多少种切法可以做到这点。

切法定义:两刀在不同位置,且每段都非空;同一对切点算同一种方案。


输入格式

  • 第一行:一个整数 (n)——带子的长度。
  • 第二行:(n) 个整数,第 (i) 个是 (\(a_i\))。

输出格式

  • 输出一个整数:满足要求的切法总数。

样例

样例 1

输入

4
1 2 3 3

输出

1

解释:总和为 9,每段和需要是 3。唯一的切法是: (\([1,2]\ |\ [3]\ |\ [3]\))

样例 2

输入

5
1 2 3 4 5

输出

0

解释:总和为 15,无法把它平均成三份整数和,当然无解。


Comments

There are no comments at the moment.