求助大佬,90分,wa第二个点
查看原帖
求助大佬,90分,wa第二个点
1068448
guang_zi_guei_ji楼主2024/8/3 13:22
#include<iostream>
using namespace std;
const int N=10e6;
int a[N],n,m,b[N],b1[N],l=0,r=0;
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	l=1;
	r=1;
	for(int i=1;i<=n;i++){
		while(b1[r]<i-m+1)r++;
		while(b[l-1]>a[i]&&l-1>=r)l--;
		b[l]=a[i];
		b1[l++]=i;
		if(i>=m)cout<<b[r]<<' ';
	}
	l=1;
	r=1;
	cout<<'\n';
	for(int i=1;i<=n;i++){
		while(b1[r]<i-m+1)r++;
		while(b[l-1]<a[i]&&l-1>=r)l--;
		b[l]=a[i];
		b1[l++]=i;
		if(i>=m)cout<<b[r]<<' ';
	}
	return 0;
}
2024/8/3 13:22
加载中...