Pagini recente » Cod sursa (job #925696) | Cod sursa (job #1324994) | Cod sursa (job #1720800) | Cod sursa (job #2317831) | Cod sursa (job #1722267)
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
ifstream si("sdo.in");
ofstream so("sdo.out");
int v[3000005];
int sortare(int st,int dr)
{
int piv=v[(st+dr)>>1];
int i=st-1,j=dr+1,aux;
while(1)
{
i++;
while(piv>v[i])
++i;
j--;
while(piv<v[j])
--j;
if(i<j)
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
}
else
return j;
}
}
void rez(int st,int dr,int k)
{
if(st==dr)
return;
int s=sortare(st,dr);
int t=s-st+1;
if(t>=k)
rez(st,s,k);
else
rez(s+1,dr,k-t);
}
int main()
{
int n,k;
si>>n>>k;
int i;
for(i=1;i<=n;++i)
si>>v[i];
rez(1,n,k);
so<<v[k];
so.close();
return 0;
}