Pagini recente » Cod sursa (job #1122948) | Cod sursa (job #2169043) | Cod sursa (job #2078806) | Cod sursa (job #1792083) | Cod sursa (job #1883576)
#include <cstdio>
#include <algorithm>
#define NMAX 3000000+5
using namespace std;
int N,k,v[NMAX];
int part(int st,int dr)
{
int i,j,p;
p=v[dr];
j=st-1;
for(int i=st;i<=dr;i++)
if(v[i]<=p)swap(v[++j],v[i]);
return j;
}
int fmin(int st,int dr,int x)
{
int poz=part(st,dr);
if(poz==x)return v[poz];
else if(x<poz && st<poz-1)return fmin(st,poz-1,x);
else if(x>poz && poz<dr-1) return fmin(poz+1,dr,x);
}
int main()
{
freopen("sdo.in","r",stdin);
freopen("sdo.out","w",stdout);
scanf("%d %d",&N,&k);
for(int i=1;i<=N;i++)
scanf("%d",&v[i]);
int ans=fmin(1,N,k);
printf("%d",ans);
return 0;
}