作者:hh呢喃_845 | 来源:互联网 | 2023-10-12 16:57
题目描述
给一个长度为n的序列,你需要求出其中连续m个数的和的最大值是多少。
输入
第一行给出一个数字T&#xff0c;表示数组总数 &#xff08;t<100&#xff09;
每组数据的第一行有两个数字 n,m &#xff08;0 第二行有n个数字ai (0 输出
对于每组数据&#xff0c;输出最大的连续m个数之和
样例输入 复制
2
5 2
2 5 4 1 6
8 3
3 5 8 2 1 8 9 7
样例输出 复制
9
24
关键是前n项之和&#xff0c;用a[i]&#43;&#61;a[i-1]循环可得前i项之和&#xff0c;然后a[i&#43;m]-a[i]便是其中i项之和。
#include
using namespace std;
int main(){int t;cin>>t;while(t--){int n,m;scanf("%d%d",&n,&m);long long a[n]; for(int i&#61;0;imax){max&#61;sum;}}printf("%ld\n",max);}return 0;
}