C语言的版本
#include<stdio.h>
#include<stdlib.h>
#define N 1000001
long long n, k;
long long a[N], s[N];
int main(void)
{
scanf("%d %d", &n, &k);
long long i;
for(i = 1; i < n; i++)
{
scanf("%d", &a[i]);
a[i] += a[i-1];
}
if(k == 0)
{
printf("%d", a[n-1]);
}
else
{
long long maxw = 0;
long long i;
long long record;
for(i = 0; i <= n-1-k; i++)
{
if((a[i+k] - a[i]) > maxw)
{
maxw = a[i+k] - a[i];
record = i;
}
}
printf("%d", a[n-1]-a[record+k]+a[record]);
}
return 0;
}
C++的版本
#include <iostream>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <list>
#include <cstring>
#include <map>
#include <stack>
#include <set>
#define N 101
using namespace std;
long long n,k,m,maxans,a[1000005];
int main()
{
cin>>n>>k;
n--;
for (long long i=1;i<=n;i++)
{
cin>>a[i];
a[i]+=a[i-1];
}
if (k==0) {
cout<<a[n];
}
else
{
for (long long i=0;i<=n-k;i++)
if ((a[i+k]-a[i])>maxans)
{
maxans=a[i+k]-a[i];
m=i;
}
cout<<a[m]+a[n]-a[k+m];
}
return 0;
}