#include <iostream>
#include <algorithm>
using namespace std;
int *generate (size_t size, size_t k) {
int *T = new int[size];
for (size_t i = 0; i < size; ++i)
T[i] = rand() % 100;
sort(T, T + k);
sort(T + k, T + size);
return T;
}
void print (int *T, size_t size) {
for (size_t i = 0; i < size; ++i)
cout << T[i] << ' ';
cout << '\n';
}
void my_sort(int *T, size_t size, size_t k) {
for (size_t first_head = 0, second_head = k; first_head < k; ++first_head) {
if (T[first_head] > T[second_head])
swap(T[first_head], T[second_head]);
}
}
int main () {
const size_t size = 15, k = 5;
int *T = generate(size, k);
print(T, size);
my_sort(T, size, k);
print(T, size);
delete [] T;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCAqZ2VuZXJhdGUgKHNpemVfdCBzaXplLCBzaXplX3QgaykgewogICAgaW50ICpUID0gbmV3IGludFtzaXplXTsKICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQogICAgICAgIFRbaV0gPSByYW5kKCkgJSAxMDA7CgogICAgc29ydChULCBUICsgayk7CiAgICBzb3J0KFQgKyBrLCBUICsgc2l6ZSk7CiAgICByZXR1cm4gVDsKfQoKdm9pZCBwcmludCAoaW50ICpULCBzaXplX3Qgc2l6ZSkgewogICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCiAgICAgICAgY291dCA8PCBUW2ldIDw8ICcgJzsKCiAgICBjb3V0IDw8ICdcbic7Cn0KCnZvaWQgbXlfc29ydChpbnQgKlQsIHNpemVfdCBzaXplLCBzaXplX3QgaykgewogICAgZm9yIChzaXplX3QgZmlyc3RfaGVhZCA9IDAsIHNlY29uZF9oZWFkID0gazsgZmlyc3RfaGVhZCA8IGs7ICsrZmlyc3RfaGVhZCkgewogICAgICAgIGlmIChUW2ZpcnN0X2hlYWRdID4gVFtzZWNvbmRfaGVhZF0pCiAgICAgICAgICAgIHN3YXAoVFtmaXJzdF9oZWFkXSwgVFtzZWNvbmRfaGVhZF0pOwogICAgfQp9CgppbnQgbWFpbiAoKSB7CiAgICBjb25zdCBzaXplX3Qgc2l6ZSA9IDE1LCBrID0gNTsKICAgIGludCAqVCA9IGdlbmVyYXRlKHNpemUsIGspOwogICAgcHJpbnQoVCwgc2l6ZSk7CiAgICBteV9zb3J0KFQsIHNpemUsIGspOwogICAgcHJpbnQoVCwgc2l6ZSk7CiAgICBkZWxldGUgW10gVDsKICAgIHJldHVybiAwOwp9