滑动窗口90分,求救
查看原帖
滑动窗口90分,求救
1278692
Little_Entropy楼主2024/7/27 10:18
#include<bits/stdc++.h>
using namespace std;
const long long N=20001000;
long long q[N],head=1,tail;
long long n,k,a[N];
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	cin>>n>>k;
	for(long long i=1;i<=n;i++)cin>>a[i];
	for(long long i=1;i<k;i++){
		while(head<=tail&&a[q[tail]]>=a[i])tail--;
		q[++tail]=i;
	}
	for(long long i=k;i<=n;i++){
		while(head<=tail&&a[q[tail]]>=a[i])tail--;
		q[++tail]=i;
		if(q[head]<i-k+1)head++;
		cout<<a[q[head]]<<" ";
	}
	cout<<endl;
	for(long long i=1;i<k;i++){
		while(head<=tail&&a[q[tail]]<=a[i])tail--;
		q[++tail]=i;
	}
	for(long long i=k;i<=n;i++){
		while(head<=tail&&a[q[tail]]<=a[i])tail--;
		q[++tail]=i;
		if(q[head]<i-k+1)head++;
		cout<<a[q[head]]<<" ";
	}
	cout<<endl;

2024/7/27 10:18
加载中...