1 条题解
-
1
#include<bits/stdc++.h> using namespace std; const int maxn=2e6+10; int a[maxn]; int a1[maxn],a2[maxn]; dequeq1; dequeq2; int main(){ int n,m; scanf("%d %d",&n,&m); for(int i=1;i<=n;i++){ scanf("%d",&a[i]); } for(int i=1;i<=n;i++){ while(!q1.empty()&&a[q1.back()]>a[i]) q1.pop_back(); while(!q2.empty()&&a[q2.back()]<a[i]) q2.pop_back(); q1.push_back(i); q2.push_back(i); if(i>=m){ while(q1.front()<i-m+1) q1.pop_front(); a1[i]=a[q1.front()]; while(q2.front()<i-m+1) q2.pop_front(); a2[i]=a[q2.front()]; } } for(int i=m;i<=n;i++) { printf("%d",a1[i]); cout<<" "; } printf("\n"); for(int i=m;i<=n;i++) { printf("%d",a2[i]); cout<<" "; }
return 0;
}
- 1
信息
- ID
- 2055
- 时间
- 1000ms
- 内存
- 500MiB
- 难度
- 4
- 标签
- 递交数
- 28
- 已通过
- 17
- 上传者