90分求助,有一个点wa
查看原帖
90分求助,有一个点wa
520847
HOILAI_CEO楼主2022/8/29 13:13
#include<bits/stdc++.h>
using namespace std;
const long long  maxn=5e7;
long long a[maxn],f[maxn],s[maxn];
long long  n,k;
int main(){
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	int head=1,tail=0;
	f[++tail]=1;
	for(int i=2;i<=n;i++){
		while(tail>=head&&f[head]<=i-k) head++;
		while(tail>=head&&a[i]<=a[f[tail]]) tail--;
		f[++tail]=i;
		if(i>=k) cout<<a[f[head]]<<" ";
	}
	cout<<endl;
	head=1,tail=0;
	s[++tail]=1;
	for(int i=2;i<=n;i++){
		while(tail>=head&&s[head]<=i-k) head++;
		while(tail>=head&&a[i]>=a[s[tail]]) tail--;
		s[++tail]=i;
		if(i>=k) cout<<a[s[head]]<<" ";
	}
	return 0;
}
2022/8/29 13:13
加载中...