CCCPaste

Untitled

#include 

#include 
#include 
using namespace __gnu_pbds;
using namespace std;
typedef long long ll;


typedef tree , null_type, less>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;

int main() {
    ios_base::sync_with_stdio(false);
    ordered_set o_set;
    int n, k;
    cin >> n >> k;
    vector v(n);
    for(int i = 0; i < n; i++) {
        cin >> v[i];
        o_set.insert(make_pair(v[i], i));
        
        if(i >= k) {
            o_set.erase(o_set.lower_bound(make_pair(v[i - k], 0)));
        }
        if(i >= k - 1) {
            cout << (*o_set.find_by_order((k - 1) / 2)).first << " ";
        }
    }
   
    return 0;
}