Pagini recente » Cod sursa (job #3195453) | Monitorul de evaluare | Borderou de evaluare (job #1291249) | Cod sursa (job #2623148) | Cod sursa (job #650578)
Cod sursa(job #650578)
#include<stdio.h>
#include<stdlib.h>
using namespace std;
int a[3000001];
void quicksort(int st,int dr,int k,int a[3000001])
{
if(st==dr) return ;
int i=st,j=dr,aux,p;
p=i+rand()%(j-i);
while(i<=j)
{
while(a[i]<a[p])++i;
while(a[j]>a[p])--j;
if(i<=j)
{ aux=a[i];a[i]=a[j];a[j]=aux;++i;--j;}
}
if(p>=k) quicksort(st,p,k,a);
else
quicksort(p+1,dr,k+st-p-1,a);
}
int main()
{
freopen("sdo.in","r",stdin);
freopen("sdo.out","w",stdout);
int n,k,i;
scanf("%d %d", &n,&k);
for(i=1;i<=n;++i)
scanf("%d ", &a[i]);
quicksort(1,n,k,a);
printf("%d", a[k]);
return 0;
}