Pagini recente » Cod sursa (job #924191) | Cod sursa (job #2161980) | Cod sursa (job #3227011) | Cod sursa (job #1003109) | Cod sursa (job #1019651)
#include<cstdio>
#include<cstdlib>
#define Nmax 3000005
using namespace std;
int a[Nmax],n,k;
int piv(int s,int d)
{
int i=s-1,j=d+1,p;
p=a[s+rand()%(d-s+1)];
while(true)
{ while(a[++i]<p);
while(a[--j]>p);
if(i<j) a[i]=a[i]+a[j]-(a[j]=a[i]);
else return j;
}
return 0;
}
void quick(int s,int d)
{
if(s<d)
{
int m=piv(s,d);
if(k<m) quick(s ,m);
else quick(m+1 ,d);
}
}
int main ()
{
freopen("sdo.in","rt",stdin);
freopen("sdo.out","wt",stdout);
scanf("%d",&n);
scanf("%d",&k);
for(register int i=1;i<=n;++i) scanf("%d",&a[i]);
quick(1,n);
printf("%d\n",a[k]);
return 0;
}