Pagini recente » Cod sursa (job #2733424) | Cod sursa (job #580524) | Cod sursa (job #2929319) | Cod sursa (job #469487) | Cod sursa (job #831163)
Cod sursa(job #831163)
#include <cstdio>
#include <fstream>
using namespace std;
int n,k,i,L,R,st,dr,mi,v,aux,X[3000001];
ifstream f("sdo.in");
ofstream g("sdo.out");
int main()
{
/*freopen("sdo.in","r",stdin);
freopen("sdo.out","w",stdout);*/
f>>n>>k;
//scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)f>>X[i];
L=1;R=n;
while(L<R)
{
st=L; dr=R; mi=(st+dr)/2;
v=X[mi];
while(st<dr)
{
while(X[st]<v){st++;continue;}
while(X[dr]>v){dr--;continue;}
if(st<dr){aux = X[st]; X[st] = X[dr]; X[dr]=aux; st++; dr--;}
}
if(k<=dr)R=dr;
else L=st;
}
g<<X[k];
return 0;
}