Pagini recente » Cod sursa (job #1085734) | Cod sursa (job #609785) | Cod sursa (job #2632411) | Cod sursa (job #2602111) | Cod sursa (job #1016022)
#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 = (st + dr) / 2;
i = st;
j = dr;
while(i <= j) {
while(a[i] < a[pivot])
i++;
while(a[j] > a[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;
}