提交时间:2024-08-21 16:46:58

运行 ID: 180635

//密钥 #include <bits/stdc++.h> using namespace std; struct man { int index,val; //数组元素下标和实际值 } t; deque <man> dq; //STL的双端队列,速度比数组队列慢 int main() { int n,m; cin>>n>>m; for(int Time=1; Time<=n; Time++) { scanf("%d",&t.val); t.index=Time; while(!dq.empty() && t.val>=dq.back().val) //维护单调队列 dq.pop_back(); dq.push_back(t); //当前元素入队列 if (Time-dq.front().index>=m) //保证队列的长度不超过m dq.pop_front(); if(Time>=m) printf("%d",dq.front().val); } printf("\n"); return 0; }