寄录
int ls[10000];
char status[30000];
void swap(int *a,int *b)
{
int c=*a;
*a=*b;
*b=c;
}
int directSelect(int l,int r,int k)
{
if(l==r)
{
return ls[l];
}
int *pivot,*p,*q,*left,*right;
pivot=ls+l;
p=ls+l+1;
q=ls+r;
left=ls+l;
right=ls+r;
while(p<q)
{
while(*p<=*pivot&&p<q)
{
p++;
}
while(*q>=*pivot&&p<q)
{
q--;
}
swap(p,q);
}
p--;
swap(p,pivot);
if(p-left+1==k)
{
return *p;
}
else if(p-left+1<k)//search right
{
return directSelect(p-ls+1,r,k+left-p-1);
}
else//search left
{
return directSelect(l,p-ls-1,k);
}
}
int main()
{
// freopen("P1138_10.in","w",stdin);
int n,k,i,j;
scanf("%d%d",&n,&k);
j=0;
for(i=0;i<n;++i)
{
scanf("%d",ls+j);
if(!ls[j][status])
{
ls[j][status]=1;
j++;
}
}
if(k>j)
{
printf("NO RESULT");
}
else
{
printf("%d",directSelect(0,j-1,k));
}
return 0;
}