Pagini recente » Cod sursa (job #1936889) | Cod sursa (job #713059) | Cod sursa (job #1060029) | Cod sursa (job #1996671) | Cod sursa (job #2080882)
#include<cstdio>
#include<cstdlib>
#include<algorithm>
using namespace std;
int a[500002], n, k;
int partyyy(int st, int dr){
int pivot=a[st+rand()%(dr-st+1)], i=st-1, j=dr+1;
while(true){
do ++i; while (a[i]<pivot);
do --j; while (a[j]>pivot);
if (i>=j) return j;
swap(a[i],a[j]);
}
}
void quicksort(int st, int dr){
int p;
if (st<dr) {
p=partyyy(st, dr);
if (k<=p) quicksort(st, p);
else quicksort(p+1, dr);
}
}
int main(){
freopen("sdo.in","r",stdin);
freopen("sdo.out","w",stdout);
scanf("%d%d\n", &n, &k);
for (int i=1;i<=n;i++) scanf("%d", &a[i]);
quicksort(1,n);
printf("%d\n", a[k]);
return 0;
}