Pagini recente » Cod sursa (job #2654798) | Cod sursa (job #1633210) | Cod sursa (job #17871) | Cod sursa (job #137732) | Cod sursa (job #3228380)
#include <iostream>
#include <fstream>
#include <random>
#include <ctime>
using namespace std;
mt19937 rng(time(NULL));
ifstream fin("sdo.in");
ofstream fout("sdo.out");
int n, v[3000005], k;
void quick_sort(int st, int dr) {
if (st >= dr) {
return;
}
int piv = rng() % (dr - st + 1) + st;
swap(v[piv], v[dr]);
int poz = st;
for (int i = st; i < dr; i++) {
if (v[i] < v[dr]) {
swap(v[i], v[poz]);
poz++;
}
}
swap(v[poz], v[dr]);
if (k < poz) {
quick_sort(st, poz - 1);
}
else {
quick_sort(poz + 1, dr);
}
}
int main() {
fin >> n >> k;
for (int i = 1; i <= n; i++) {
fin >> v[i];
}
quick_sort(1, n);
fout << v[k];
return 0;
}