两个TLE,求正解
查看原帖
两个TLE,求正解
1383344
lhw0624楼主2024/7/3 08:15
#include <bits/stdc++.h>
using namespace std;
const int N=1e6+11;
struct ST{
	int x,id;
};
ST q[N];
int a[N],b[N],c[N];
int head,tail;
int main(){
	int n,m,e=0;
	cin>>n>>m;
	head=tail=1;
	for(int i=1;i<n;i++){
		scanf("%d",&a[i]);
		if(head<tail && i-q[head].id>=m){
			head++;
		}
		while(head<tail && q[tail-1].x>a[i]){
			tail--;
		}
		q[tail].x=a[i];
		q[tail].id=i;
		tail++;
		e++;
		if(e==1) cout<<0<<endl;
		cout<<q[head].x<<endl;
	}
}
2024/7/3 08:15
加载中...