问(有关puts)
查看原帖
问(有关puts)
794178
2023chencheng楼主2025/8/3 21:44

为什么这样不能输出0 :

#include <iostream>
#include <queue>
using namespace std;
const int N=2e6+5;
int n,m,num[N];
struct Node{int key,time;};
deque<Node>q;
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin>>n>>m;
	for(int i=1;i<=n;++i)
		cin>>num[i];
	puts("0");//唯一的区别
	cout<<num[1]<<"\n";
	q.push_back({num[1],1});
	for(int i=3;i<=n;++i){
		while(!q.empty())
			if(num[i-1]<=q.back().key||q.back().time+m<i)q.pop_back();
			else break;
		while(!q.empty())
			if(q.front().time+m<i)q.pop_front();
			else break;
		if(q.empty())cout<<num[i-1]<<"\n";
		else cout<<q.front().key<<"\n";
		q.push_back({num[i-1],i-1});
	}
	return 0;
}
2025/8/3 21:44
加载中...