You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

24 lines
979 B

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl "\n"
const int N = 1000010;
int n, k;
int a[N], s[N];
int ans = LONG_LONG_MAX; // 预求最小先设最大
signed main() {
cin >> n >> k;
for (int i = 2; i <= n; i++) { // i代表第i个城市
cin >> a[i]; // a[i]代表第i-1个城市到第i个城市需要的时间
s[i] = s[i - 1] + a[i]; // 利用前缀存储从第1个城市到第i+1个城市的累积时间
}
// 感悟:代码越多,可读性越强
for (int i = 1; i <= n; i++) { // 遍历每个城市
int far = i + k; // 传送到最远的点
if (far >= n) far = n; // 最远不能超过n点
int time = s[i] + s[n] - s[far]; // s[n]-s[far]= 剩余道路需要走的时间,s[i]:前面道路需要走的时间
ans = min(ans, time); // 取最小值
}
cout << ans << endl; // 输出
}