hank第1个没过
  • 板块P1725 琪露诺
  • 楼主yym111
  • 当前回复5
  • 已保存回复5
  • 发布时间2025/7/3 16:27
  • 上次更新2025/7/4 06:27:05
查看原帖
hank第1个没过
1279212
yym111楼主2025/7/3 16:27
#include<bits/stdc++.h>
using namespace std;
const int Maxn=200010;
priority_queue<int> q1,q2;
int n,ll,rr;
int arr[Maxn],dp[Maxn];

int main(){
	cin>>n>>ll>>rr;
    n++;
    for (int i=1;i<=n;i++)
    {
        cin>>arr[i];
        dp[i]=arr[i];
    }
    for (int i=n-ll;i>=1;i--)
    {
        int x1=0,x2=0;
        q1.push(dp[i+ll]);
        if (i<n-rr)
            q2.push(dp[i+rr+1]);
        if (q2.empty())
        {
            x1=q1.top();
        }
        else
        {
            x1=q1.top();
            x2=q2.top();
        }
        while (x1==x2 && !q2.empty())
        {
            x1=q1.top();
            x2=q2.top();
            q2.pop();
            q1.pop();
        }
        if (i>n-rr)
        {
            dp[i]=max(dp[i],dp[i]+x1);
        }
        else
        {
            dp[i]=dp[i]+x1;
        }
    }
    cout<<dp[1];
}
2025/7/3 16:27
加载中...