1 条题解
-
0张浩翔 LV 10 @ 2024-5-26 8:32:23
#include<bits/stdc++.h> using namespace std; const int N = 1e6 + 10; int n,k,a[N],qmin[N],head=1,tail,pos[N],l[N],cnt=0; int main(){ cin>>n>>k; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<=n;i++){ while(head<=tail&&a[i]<=qmin[tail]) tail--; qmin[++tail]=a[i],pos[tail]=i; if(i>=k){ if(i-pos[head]+1>k){head++;}cout<<qmin[head]<<" ";} } cout<<endl; head=1,tail=0; for(int i=1;i<=n;i++){ while(head<=tail&&a[i]>=qmin[tail]) tail--; qmin[++tail]=a[i]; pos[tail]=i; if(i>=k){ if(i-pos[head]+1>k){head++;} cout<<qmin[head]<<" "; } } }
- 1
信息
- ID
- 2000
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 116
- 已通过
- 20
- 上传者