1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| #include<bits/stdc++.h> using namespace std; using ll = long long ; const int N = 2e5+9; ll a[N];
int main(){ ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); ll n,k;cin >> n >> k; for(int i = 1;i <= n;++i) cin >> a[i]; deque<int> dq; for(int i = 1;i <= n;++i) { while(dq.size() && dq.front() <= i-k)dq.pop_front(); while(dq.size() && a[dq.back()] <= a[i]) dq.pop_back(); dq.push_back(i); if(i >= k) cout << a[dq.front()] << ' '; } cout << '\n'; dq = deque<int>(); for(int i = 1;i <= n;++i) { while(dq.size() && dq.front() <= i-k)dq.pop_front(); while(dq.size() && a[dq.back()]>= a[i]) dq.pop_back(); dq.push_back(i); if(i >= k) cout << a[dq.front()] << ' '; } }
|