90pts!什么问题QAQ
查看原帖
90pts!什么问题QAQ
1016748
Wangyuqi2010楼主2024/10/13 20:09
#include<iostream>
#include<deque>
using namespace std;
struct node{
	int id;
	int num;
};
deque<node>Q1;
deque<node>Q2;
int n,k;
int a[1000010];
int main(){
	cin>>n>>k;
	for(int i=1;i<=n;i++) cin>>a[i];
	Q1.push_front( {1,a[1]} );
	for(int i=2;i<=n;i++){
		while(Q1.back().num>=a[i]&&!Q1.empty()) Q1.pop_back();
		Q1.push_back( {i,a[i]} );
		if(Q1.front().id<=i-k){
			Q1.pop_front();
		}
		if(i>=k){
			cout<<Q1.front().num<<' ';
		}
		
	}
	cout<<endl;
	Q2.push_front( {1,a[1]} );
	for(int i=2;i<=n;i++){
		while(Q2.back().num<=a[i]&&!Q2.empty()) Q2.pop_back();
		Q2.push_back({i,a[i]});
		if(Q2.front().id<=i-k){
			Q2.pop_front();
		}
		if(i>=k){
			cout<<Q2.front().num<<' ';
		}
	}
	return 0;
} 
2024/10/13 20:09
加载中...