1 条题解

  • 0
    @ 2026-4-17 13:20:42

    优美

    #include<bits/stdc++.h>
    using namespace std;
    #define int long long
    const int N=2e5+10;
    int n,l,r,i,pre1,pre2,sum,ans;
    int a[N],dp1[N],dp2[N];
    signed main()
    {
    	scanf("%lld%lld%lld",&n,&l,&r);
    	for(i=1;i<=n;i++)dp1[i]=dp2[i]=0;
    	for(i=1;i<=n;i++)scanf("%lld",&a[i]),sum+=a[i];
    	for(i=1;i<=n;i++)dp1[i]=max(pre1+=a[i]-l,dp1[i-1]);
    	for(i=n;i>=1;i--)dp2[i]=max(pre2+=a[i]-r,dp2[i+1]);
    	for(i=0;i<=n;i++)ans=max(ans,dp1[i]+dp2[i+1]);
    	printf("%lld\n",sum-ans);return 0;
    }
    
    • 1

    信息

    ID
    9943
    时间
    2000ms
    内存
    1024MiB
    难度
    8
    标签
    递交数
    18
    已通过
    7
    上传者