题意
读入n个整数的数列a1,a2,…,an和正整数k(1<=k<=n),请输出连续排列的k个整数的和的最大值
输入
第一行是正整数n(1<=n<=100000)和正整数k(1<=k<=n) 第二行以后的第1+i(1<=i<=n)至最后一行为数列
输出
仅一行,仅包括最大值。
样例输入
5 3 2 5 -4 10
样例输出
11
这道题在洛谷上的难度可是普及-诶,所以说直接手动上个前缀和就AC啦——
1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,k,ans; 4 int a[100010]; 5 int main() 6 { 7 cin>>n>>k; 8 for(int i=1;i<=n;i++) 9 { 10 cin>>a[i]; 11 a[i]+=a[i-1]; 12 } 13 for(int i=k;i<=n;i++) 14 ans=max(ans,a[i]-a[i-k]); 15 cout<<ans<<endl; 16 return 0; 17 }