AC
2025-01-22 11:31:29
发布于:广东
13阅读
1回复
0点赞
#include<bits/stdc++.h>
using namespace std;
long long a[200010],n,c;
long long dp[200010][2][2];
int main(){
cin>>n>>c;
for(long long i=1;i<=n;i++) cin>>a[i];
dp[1][1][1]=a[1];
dp[1][0][1]=dp[1][1][0]= -0x3f3f3f3f;
dp[1][0][0]=0;
for(long long i=2;i<=n;i++){
dp[i][0][0]=max(dp[i-1][1][0],dp[i-1][0][0]);
dp[i][0][1]=max(dp[i-1][1][1],dp[i-1][0][1]);
dp[i][1][0]=max(dp[i-1][1][0]-2*c,dp[i-1][0][0])+a[i];
dp[i][1][1]=max(dp[i-1][1][1]-2*c,dp[i-1][0][1])+a[i];
}
long long ans=0;
ans=max(ans,max(dp[n][0][1],dp[n][0][0]));
ans=max(ans,dp[n][1][0]);
ans=max(ans,dp[n][1][1]-2*c);
cout<<ans;
return 0;
}
全部评论 1
抄题解……?
2025-02-03 来自 湖北
0
有帮助,赞一个