就是这可爱代码,我本地测样例能过,但CF上跑输出奇妙的东西,为什么??? 这是提交寄录
#include<bits/stdc++.h>
using namespace std;
#define ll int
ll n,T,k,z,s[100009];
ll dp[5][100009][2],ans=-1;//消耗x次向左,位置在y
int main()
{
cin>>T;
while(T--)
{
ans=0;
cin>>n>>k>>z;
for(ll i=1;i<=n;i++)
{
cin>>s[i];
for(int j=0;j<=5;++j)dp[j][i][1] = dp[j][i][0] = 0;
}
dp[0][1][0] = s[1];
for(int i=1;i<=k+1;++i)dp[0][i][0] = dp[0][i-1][0] + s[i]; ans = dp[0][k+1][0];
for(int i=1;i<=z;++i)
{
for(int j=1;j<=k-i*2+1;j++)
{
dp[i][j][1] = dp[i-1][j+1][0]+s[j];
dp[i][j][0] =max(dp[i][j-1][0]+s[j],dp[i][j-1][1]+s[j]),
ans=max(ans,max(dp[i][j][1],dp[i][j][0]));
}
}
cout<<ans<<endl;
}
return 0;
}