75分求助,非常感谢
查看原帖
75分求助,非常感谢
806720
sea_water楼主2024/1/28 15:10
#include<bits/stdc++.h>
using namespace std;
unsigned long long x[1000005];
struct a{
	unsigned long long x;
	int y;
};
vector<a> q;
int k,n;
int main(){
	scanf("%d%d",&n,&k);
	for(int i=1;i<=n;i++){
		scanf("%llu",&x[i]);
	}
	for(int i=1;i<=k;i++){
		while(q.size()&&q.back().x<=x[i]) {
			q.pop_back();
		}
		a d;
		d.x=x[i];
		d.y=i;
		q.push_back(d);
	}
	printf("%d\n",q.size());
	for(int i=k+1;i<=n;i++){
		if(!q.empty()&&q.front().y==i-k){
			q.erase(q.begin(),q.begin()+1);
		}
		while(q.size()&&q.back().x<=x[i]) {
			q.pop_back();
		}
		a d;
		d.x=x[i];
		d.y=i;
		q.push_back(d);
		printf("%d\n",q.size());
	} 
} 
2024/1/28 15:10
加载中...