Carrytkr @ 2022-09-24 14:03:19
#include <bits/stdc++.h>
using namespace std;
int n,m;
const int N=1e6+5;
int q1[N],q2[N];
int a[N];
int dandiao_queue()
{
int head=1,tail=0;
for(int i=1;i<=n;i++)
{
while(head<=tail&&q1[head]<i-m+1) head++;
while(head<=tail&&a[i]<a[q1[tail]]) tail--;
q1[++tail]=i;
if(i>=m)
cout<<a[q1[head]]<<" ";
}
cout<<endl;
}
int old_queue()
{
int head=1,tail=0;
for(int i=1;i<=n;i++)
{
while(head<=tail&&q2[head]<i-m+1) head++;
while(head<=tail&&a[i]>a[q2[tail]]) tail--;
q2[++tail]=i;
if(i>=m) cout<<a[q2[head]]<<" ";
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
dandiao_queue();
old_queue();
return 0;
}
by __QHY__ @ 2022-09-24 14:32:24
你这代码能过啊!
by SwallowtailPhantasm @ 2022-10-02 21:04:34
同看第三篇题解表示咱也不知道,蹲个巨佬解答吧
by amxxxxx @ 2022-10-14 20:17:06
我拿去也ac了啊,哪里re了