WA on #19,求调
查看原帖
WA on #19,求调
722054
Yhy001楼主2025/1/11 12:12
#include <bits/stdc++.h>
using namespace std;
int dp[5005],cnt[5005][2],ans,c;
int main(){
    int n,m;cin>>n>>m;
    for(int i=1;i<=n;i++){
        int a;cin>>a;
        if(!a){
            for(int j=1;j<=m;j++) cnt[j][0]+=cnt[j-1][0],cnt[j][1]+=cnt[j-1][1];
            for(int j=c;j>=0;j--) dp[j]=max(dp[max(j-1,0)],dp[j])+cnt[j][0]+cnt[c-j][1];
            for(int j=1;j<=m;j++) cnt[j][0]=cnt[j][1]=0;
            c++;
        }else if(a>0) cnt[a][0]++;
        else cnt[-a][1]++;
    }
    for(int j=1;j<=m;j++) cnt[j][0]+=cnt[j-1][0],cnt[j][1]+=cnt[j-1][1];
    for(int i=0;i<=m;i++) dp[i]+=cnt[i][0]+cnt[m-i][1],ans=max(ans,dp[i]);
    cout<<ans;
}
2025/1/11 12:12
加载中...