DOBRI

来源:互联网 发布:广东网络电视营业厅 编辑:程序博客网 时间:2024/06/08 13:52

问题 C: DOBRI

时间限制: 1 Sec  内存限制: 128 MB
提交: 37  解决: 21
[提交][状态][讨论版]

题目描述

给出一个包含N个整数的序列A,定义这个序列A的前缀和数组为SUM数组 ,当SUM数组中的第i个元素等于在i前面的三个元素的和,那么第i个元素就称为GOOD。 那么这个SUM数组中包含多少个GOOD 元素?

输入

第一行整数T表示数据组数(1<=T<=10)

每组数据以下格式:

输入的第一行包含一个整数N (1<=N<=100000), 表示序列A的长度。

输入的第二行包含N个用空格隔开的整数,表示序列A (-100000<=Ai<=100000).

输出

每组数据输出仅一行,输出这个SUM数组中包含多少个GOOD元素。

样例输入

341 1 1 341 2 3 1065 -2 -3 1 3 3

样例输出

1

0

1


#include<stdio.h>#include<math.h>#include<string.h>#include<algorithm>using namespace std;int a[100010],b[100100];int main(){int t,n,i,j;scanf("%d",&t);while(t--){scanf("%d",&n);scanf("%d",&a[0]);b[0]=a[0];for(i=1;i<n;i++){scanf("%d",&a[i]);b[i]=a[i]+b[i-1];}int sum=0;for(i=3;i<n;i++){if(b[i]==(b[i-1]+b[i-2]+b[i-3]))sum++;}printf("%d\n",sum);}return 0;}




0 0
原创粉丝点击