求调
查看原帖
求调
952041
buerbute楼主2024/10/20 10:05

最后一点wa了

#include<bits/stdc++.h>
using namespace std;
long long a[10000001],n,k;
deque<int> q;
void ins(int x){
	while(!q.empty()&&q.back()>x){
		q.pop_back();
	}
	q.push_back(x);
}
void del(int x){
	while(!q.empty()&&q.front()==x){
		q.pop_front();
	}
}
deque<int> q2;
void ins2(int x){
	while(!q2.empty()&&q2.back()<x){
		q2.pop_back();
	}
	q2.push_back(x);
}
void del2(int x){
	while(!q2.empty()&&q2.front()==x){
		q2.pop_front();
	}
}
int main(){
//	q.push_front(2);
//	q.push_back(3);
//	q.pop_back();
//	q.front();
//	q.back();
	cin>>n;
	cin>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}

	for(int i=1;i<=k;i++){
		ins(a[i]);
	}
	for(int i=k+1;i<=n+1;i++){
		cout<<q.front()<<" ";
		ins(a[i]);
		del(a[i-k]);
	}
	cout<<endl;
	for(int i=1;i<=k;i++){
		ins2(a[i]);
	}
	for(int i=k+1;i<=n+1;i++){
		cout<<q2.front()<<" ";
		ins2(a[i]);
		del2(a[i-k]);
	}
}
2024/10/20 10:05
加载中...