#include <vector>
#include <iostream>
#include <queue>
std::vector<int> mink_v6(std::vector<int> array, int k) {
std::priority_queue<int> pq(array.begin(), array.begin() + k);
int size = array.size();
for (int i = k; i < size; i++) {
if (pq.top() > array[i]) {
pq.pop();
pq.push(array[i]);
}
}
std::vector<int> result;
for (int i = 0; i < k; i++) {
result.push_back(pq.top());
pq.pop();
}
return result;
}
int main(void) {
int n, k;
std::vector<int> array;
std::cout << "Introduceti numarul de elemente: ";
std::cin >> n;
std::cout << "Introduceti numarul elementelor pastrate: ";
std::cin >> k;
std::cout << "Introduceti cele " << n << " numere: ";
for (int i = 0; i < n; i++) {
int value;
std::cin >> value;
array.push_back(value);
}
std::vector<int> result = mink_v6(array, k);
std::cout << "Elementele pastrate sunt:";
for (int i = 0; i < k; i++) {
std::cout << ' ' << result[i];
}
std::cout << std::endl;
}