s2020gc56收集数据
作答区域:
#include<bits/stdc++.h>
using namespace std;
int n,k,s1,s2,h1,h2,he,ans,r2,r1,l2,l1=1,f[1000009];
int main()
{cin>>n>>k;for(int i=1;i<=n;i++)cin>>f[i];for(int i=1;;i++){s1++;if(s1>k)break;h1=h1+f[i];}for(int i=n;;i--){s2++;if(s2>k)break;h2=h2+f[i];}he=h1+h2;if(he>ans)ans=he;l2=n-k+1;r1=k,r2=n;for(;;){r1++;if(r1>=l2)break;h1+=f[r1]-f[l1];l1++,l2--;h2+=f[l2]-f[r2];r2--,he=h1+h2;if(he>ans)ans=he;}cout<<ans;return 0;
}
用尺取法做就行了。