题目链接
解题思路:
总时间减去最大的k段路程时间和,直接模拟就可以(我代码写的有点太烂了。。。)
AC代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
using namespace std;
long long a[1000005],res[1000005],f[1000005];
int main(){
int n,k;
long long ans=0;
cin>>n>>k;
if(1+k>=n) printf("0\n");
else{
for(int i=2;i<=n;i++){
cin>>a[i];
res[i]=res[i-1]+a[i];
f[i]=res[i];
}
for(int i=k+1;i<=n;i++) f[i]=res[i]-res[i-k];
for(int i=1;i<=n;i++) ans=max(ans,f[i]);
printf("%lld\n",res[n]-ans);
}
return 0;
}