#include <vector>
#include <iostream>
void print_vector(std::vector<int> const &v) {
for (auto const &n: v) {
std::cout << n << " ";
}
}
void merge_sorted_not_equal_arrays(std::vector<int> &vec1, std::vector<int> &vec2) {
int size1 = vec1.size();
int size2 = vec2.size();
for (int i = size2 - 1; i >= 0; i--) {
int j, last1 = vec1[size1 - 1];
for (j = size1 - 2; j >= 0 && vec1[j] > vec2[i]; j--) {
vec1[j + 1] = vec1[j];
}
if (last1 > vec2[i]) {
vec1[j + 1] = vec2[i];
vec2[i] = last1;
}
}
}
int main()
{
std::vector<int> vec1 = {1, 4, 6, 8, 10};
std::vector<int> vec2 = {2, 3, 5, 9};
merge_sorted_not_equal_arrays(vec1, vec2);
print_vector(vec1);
std::cout << "\n";
print_vector(vec2);
}
/*
run:
1 2 3 4 5
6 8 9 10
*/