AC
2025-01-22 11:31:29
发布于:广东
22阅读
0回复
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













有帮助,赞一个