Cod sursa(job #373358)
#include <algorithm>
using namespace std;
#define DIM 3000005
#define MAX 10005
char buff[MAX];
int n,k,poz;
int a[DIM];
inline void cit (int &nr)
{
for (nr=0; buff[poz]<'0' || buff[poz]>'9'; )
if (++poz==MAX)
{
fread (buff,1,MAX,stdin);
poz=0;
}
for ( ; '0'<=buff[poz] && buff[poz]<='9'; )
{
nr=nr*10+buff[poz]-'0';
if (++poz==MAX)
{
fread (buff,1,MAX,stdin);
poz=0;
}
}
}
void read ()
{
int i;
cit (n); cit (k);
for (i=1; i<=n; ++i)
cit (a[i]);
}
void qsort (int st,int dr)
{
int i=st,j=dr,piv=a[(st+dr)/2];
do
{
while (a[i]<piv)
++i;
while (a[j]>piv)
--j;
if (i<=j)
swap (a[i++],a[j--]);
}
while (i<=j);
if (st<=k && k<=j)
qsort (st,j);
else if (i<=k && k<=dr)
qsort (i,dr);
}
int main ()
{
freopen ("sdo.in","r",stdin);
freopen ("sdo.out","w",stdout);
read ();
qsort (1,n);
printf ("%d",a[k]);
return 0;
}