A41805. 试题 H: 和与乘积【问题描述】给定一个数列 A = (a1, a2, · · · , an),问有多少个区间 [L, R] 满足区间内元素的乘积等于他们的和,即 aL · aL+1 · · · aR = aL + aL+1 + · · · + aR 。【
填空题
困难
知识点
题目描述
试题 H: 和与乘积
【问题描述】
给定一个数列 A = (a1, a2, · · · , an),问有多少个区间 [L, R] 满足区间内元素
的乘积等于他们的和,即 aL · aL+1 · · · aR = aL + aL+1 + · · · + aR 。
【输入格式】
输入第一行包含一个整数 n,表示数列的长度。
第二行包含 n 个整数,依次表示数列中的数 a1, a2, · · · , an。
【输出格式】
输出仅一行,包含一个整数表示满足如上条件的区间的个数。
【样例输入】
4
1 3 2 2
【样例输出】
6
【样例解释】
符合条件的区间为 [1, 1], [1, 3], [2, 2], [3, 3], [3, 4], [4, 4]。
参考答案
#样例不能完全通过
n=int(input())
res=list(map(int,input().split()))
ans=0
def judge(n):
summ=sum(n)
cul=1
for i in ress:
cul*=i
if summ==cul:
return 1
return 0
for i in range(n):
for j in range(i,n+1):
ress=res[i:j]
if len(ress)>0:
if judge(ress):
ans+=1
j+=1
i+=1
print(ans)
上一题
下一题