• Source
    1. #include <vector>
    2. #include <iostream>
    3.  
    4. int maxpos(const std::vector<int> array) {
    5. int size = array.size();
    6. int pos = 0;
    7. for (int i = 1; i < size; i++) {
    8. if (array[pos] < array[i]) {
    9. pos = i;
    10. }
    11. }
    12. return pos;
    13. }
    14.  
    15. std::vector<int> mink_v4(std::vector<int> array, int k) {
    16. std::vector<int> result;
    17. int size = array.size();
    18. for (int i = 0; i < k; i++) {
    19. result.push_back(array[i]);
    20. }
    21. int pos = maxpos(result);
    22. for (int i = k; i < size; i++) {
    23. if (result[pos] > array[i]) {
    24. result[pos] = array[i];
    25. pos = maxpos(result);
    26. }
    27. }
    28. return result;
    29. }
    30.  
    31. int main(void) {
    32. int n, k;
    33. std::vector<int> array;
    34. std::cout << "Introduceti numarul de elemente: ";
    35. std::cin >> n;
    36. std::cout << "Introduceti numarul elementelor pastrate: ";
    37. std::cin >> k;
    38. std::cout << "Introduceti cele " << n << " numere: ";
    39. for (int i = 0; i < n; i++) {
    40. int value;
    41. std::cin >> value;
    42. array.push_back(value);
    43. }
    44. std::vector<int> result = mink_v4(array, k);
    45. std::cout << "Elementele pastrate sunt:";
    46. for (int i = 0; i < k; i++) {
    47. std::cout << ' ' << result[i];
    48. }
    49. std::cout << std::endl;
    50. }