Pagini recente » Cod sursa (job #2531203) | Cod sursa (job #1320023) | Cod sursa (job #2832373) | Cod sursa (job #1438173) | Cod sursa (job #1016065)
#include<stdio.h>
#include<stdlib.h>
int k,a[3000010];
void swap (int &x, int &y) {
int aux = x;
x = y;
y = aux;
}
void ord (int st, int dr) {
if(st >= dr)
return ;
int pivot,i,j;
pivot = a[st + rand() % (dr-st+1)];
i = st;
j = dr;
while(i <= j) {
while(a[i] < pivot)
i++;
while(a[j] > pivot)
j--;
if(i <= j)
swap(a[i],a[j]),
++i,
--j;
}
if(k <= j)
ord(st, j);
else
ord(i,dr);
}
int main() {
freopen("sdo.in","r",stdin);
freopen("sdo.out","w",stdout);
int n,i;
scanf("%d%d",&n,&k);
for(i = 1; i <= n; i++)
scanf("%d",&a[i]);
ord(1,n);
printf("%d\n",a[k]);
return 0;
}