DOBRI
发布日期:2021-07-01 00:13:13 浏览次数:3 分类:技术文章

本文共 773 字,大约阅读时间需要 2 分钟。

问题 : DOBRI

时间限制: 1 Sec  内存限制: 128 MB

题目描述

给出一个包含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

样例输出

101
#include
int s[100010];int main(){ int t, n, a, i, sum, ans; while (~scanf("%d", &t)) { while (t--) { ans = 0; sum = 0; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%d", &a); sum += a; s[i] = sum; } sum = s[0] + s[1] + s[2]; for (i = 3; i < n; i++) { if (s[i] == sum) ans++; sum += s[i] - s[i - 3]; } printf("%d\n", ans); } } return 0;}

转载地址:https://lzyws739307453.blog.csdn.net/article/details/80024595 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Tmk吃汤饭
下一篇:base64解密

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月29日 04时20分53秒