Pagini recente » Cod sursa (job #60445) | Cod sursa (job #356098) | Cod sursa (job #297414) | Cod sursa (job #1628114) | Cod sursa (job #3243645)
#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;
}