Pagini recente » Cod sursa (job #2058507) | Cod sursa (job #2218079) | Cod sursa (job #1999604) | Cod sursa (job #1565063) | Cod sursa (job #1659403)
#include <bits/stdc++.h>
using namespace std;
int n,k,i,v[3000011];
void Answer(int l,int r)
{
if(l<r)
{
int in=l;
int sf=r;
swap(v[r],v[in+rand()%(sf-in+1)]);
int p=v[r];
int j=in-1;
for(i=in; i<=sf; ++i)
if(v[i]<=p)swap(v[++j],v[i]);
if(j>k)Answer(l,j-1);
else Answer(j+1,r);
}
}
int main()
{
freopen("sdo.in","r",stdin);
freopen("sdo.out","w",stdout);
srand(time(0));
scanf("%d%d",&n,&k);
for(i=1; i<=n; ++i)
scanf("%d",&v[i]);
Answer(1,n);
printf("%d\n",v[k]);
return 0;
}