题解 P5638 【【CSGRound2】光骓者的荣耀】

ShineEternal

2019-11-10 08:18:07

Solution

[好东西](https://blog.csdn.net/kkkksc03/article/details/102994395) ## solution: 因为仅仅能传送一次,所以我们只需要枚举传送点,然后通过前缀和判断就行了。 出题人良心的数据范围开``long long``可过 ## code: ```cpp #include<cstdio> using namespace std; long long max(long long x,long long y) { if(x>y)return x; return y; } long long sum[1000005],a[1000005]; int main() { int n,k; scanf("%d%d",&n,&k); for(int i=1;i<n;i++) { scanf("%lld",&a[i]); sum[i]=sum[i-1]+a[i]; } long long ans=0; for(int i=k;i<n;i++) { ans=max(ans,sum[i]-sum[i-k]); } printf("%lld\n",sum[n-1]-ans); return 0; } ```