总思路就是如果k等于0的话直接输出总时间,如果k>n-1的话,直接输出0,如果0<k<n-1,算出连续k个路程的所要时间最大值,用总时间减去k个路程的所要时间最大值. 时间超出了,出了4个TLE,最后四个测试点出的。我要怎么改,还是我没救了
#include <bits/stdc++.h>
using namespace std;
long long a[1000000],n,t=0,z,maxz=0,i,max1,k,j;
int main()
{
cin>>n>>k;
for(i=0;i<n-1;i++){
cin>>a[i];
t+=a[i];}
if(k>n-1){
cout<<0;
return 0;}
if(k==0) cout<<t;
if(k>0&&k<n-1){
for(i=0;i<n-1;i++){
max1=0;
z=k;
j=i;
while(z--){max1+=a[j];
j++;}
if(max1>=maxz) maxz=max1;}
cout<<t-maxz;}
return 0;
}