76分求助
  • 板块P1714 切蛋糕
  • 楼主Bobi2014
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/9/25 19:45
  • 上次更新2024/9/25 21:42:21
查看原帖
76分求助
1211899
Bobi2014楼主2024/9/25 19:45
#include<bits/stdc++.h>
using namespace std;
int n,m,p,sum[100010],ans = INT_MIN;
deque<int> minn;
void add(int k){
	while(k - minn.front() > m){
		minn.pop_front();
	}
	ans = max(ans,sum[k] - sum[minn.front()]);
	while(minn.empty() == false and sum[minn.back()] > sum[k]){
		minn.pop_back();
	} 
	minn.push_back(k);
} 
int main(){
	cin >> n >> m;
	if(m == 0){
		cout << 0;
		return 0;
	}
	for(int i = 1;i <= n;i ++){
		cin >> p;
		sum[i] = sum[i - 1] + p;
	}
	minn.push_back(0);
	for(int i = 1;i <= n;i ++){
		add(i);
	}
	cout << ans;
	return 0;
}

2024/9/25 19:45
加载中...