Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
180635 | 杜智真 | 密钥 | C++ | 通过 | 100 | 29 MS | 252 KB | 731 | 2024-08-21 16:46:58 |
//密钥 #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; }