把一条带子掰成三截
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