根据第一篇题解的part3不带优化的思路写的(没有照代码, 某神犇写游记里说看题解不要看代码), 题解说有80分, 这样例也全过了 但数据就WA
思路是枚举 i+1 -> i+k
跳过的区间然后用1->n
去减
#include <iostream>
#include <cstdio>
#define int long long
using namespace std;
const int maxn = 1e6+10;
const int inf = 0x7fffffff;
int n, a[maxn], k, ans=inf;
signed main() {
scanf("%lld %lld", &n, &k);
for(int i=1;i<n;i++) {
scanf("%lld", &a[i]);
}
// (1)__1__(2)__2__(3)__3__(4)__4__(5)
// (实际意义)
// [i=2,k=2] 1->i ~ i+k->n
// i+1 -> i+k
// (1)____a[1]____(2)
// 计算1->n
int sum = 0;
for(int i=1;i<n;i++) {
sum+=a[i];
}
for(int i=1;i<n;i++) {
if(i+k-1<n) {
int insum=0;
for(int j=i;j<=i+k-1;j++) {
insum+=a[i];
}
ans=min(ans,sum-insum);
}
}
printf("%lld", ans);
return 0;
}