Pagini recente » Cod sursa (job #2947416) | Cod sursa (job #298218) | Cod sursa (job #3267070) | Cod sursa (job #2680670) | Cod sursa (job #1874011)
#include <cstdio>
#include <cstdlib>
#include <ctime>
using namespace std;
int n, k, v[3000013];
void qs (int left, int right)
{
int i = left, j = right, aux;
int pivot = v[left + rand ()% (right - left + 1)];
while (i <= j)
{
while (v[i] < pivot){
i ++;
}
while (v[j] > pivot){
j --;
}
if (i <= j){
aux = v[i];
v[i] = v[j];
v[j] = aux;
i ++;
j --;
}
}
if (left < j && j >= k){
qs (left, j);
}
if (i < right && i <= k){
qs (i, right);
}
}
int main ()
{
freopen ("sdo.in", "r", stdin);
freopen ("sdo.out", "w", stdout);
srand (time (0));
scanf ("%d%d", &n, &k);
for (int i=1; i<=n; i++){
scanf ("%d", &v[i]);
}
qs (1, n);
printf ("%d", v[k]);
return 0;
}