Pagini recente » Cod sursa (job #1213275) | Cod sursa (job #490493) | Cod sursa (job #1966854) | Cod sursa (job #378078) | Cod sursa (job #1850772)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cstdlib>
using namespace std;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
unsigned int n, k, v[3000001];
void quickSort(unsigned int st, unsigned int dr)
{
unsigned int i, j, f;
unsigned int piv = rand() % (dr - st) + st;
piv = v[piv];
i = st;
j = dr;
do
{
while(v[i] < piv and i <= dr)
{
++i;
}
while(v[j] > piv and j >= st)
{
--j;
}
if(i <= j)
{
f = v[i];
v[i] = v[j];
v[j] = f;
i++;
j--;
}
}while(i <= j);
if(j == k) fout<<v[j]<<endl;
else if(j > k) quickSort(st, j);
else quickSort(i, dr);
}
void citire()
{
fin>>n>>k;
for(int i = 0; i < n; ++i)
{
fin>>v[i];
}
}
int main()
{
citire();
quickSort(0, n - 1);
}