8个MLE1个WA......
查看原帖
8个MLE1个WA......
790279
szk2022楼主2023/7/6 11:48
#include<bits/stdc++.h>
using namespace std;
int long long n,m,ansm,ansm2,sum,a[10000001],dp[10000001],dp2[10000001];
int main(){
	scanf("%lld%lld",&n,&m);
	for(int i=1;i<=n;i++){
		scanf("%lld",&a[i]);
	}
	for(int i=1;i<=n;i++){
		if(ansm<m and ansm+1<n-i){
			dp[i]=dp[i-1]+a[i];
			ansm++;
		}else{
			while(ansm--){
				dp[i]=dp[i-1];
				i++;
				if(i==n){
					dp[i]=dp[i-1];
				}
			}
		}
	}
	for(int i=1;i<=n;i++){
		if(ansm2==0){
			dp2[i]=dp2[i-1]+a[i];
			ansm2++;
		}else if(ansm2>0){
			dp2[i]=dp2[i-1];
			ansm2--;
		}
	}
	for(int i=1;i<=n;i++){
		dp2[i]=max(dp[i],dp2[i]);
	}
	printf("%lld",dp2[n-1]);
}
2023/7/6 11:48
加载中...