Pagini recente » Cod sursa (job #234653) | Cod sursa (job #2205190) | Cod sursa (job #2381075) | Cod sursa (job #2576506) | Cod sursa (job #1194237)
#include <cstdio>
#include <algorithm>
#include <cstdlib>
#include <ctime>
using namespace std;
int n,k,i,a[3000010],ST,DR,L,R,M,aux;
int main()
{
freopen("sdo.in","r",stdin);
freopen("sdo.out","w",stdout);
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
srand(time(0));
for(L=1,R=n;R-L-1;)
{
M=L+rand()%(R-L+1);
M=a[M];
ST=L;DR=R;
do
{
while(a[ST]<M)ST++;
while(a[DR]>M)DR--;
if(ST<=DR){aux=a[ST];a[ST]=a[DR];a[DR]=aux;ST++;DR--;}
}
while(ST<=DR);
if(DR>=L&&k<=DR)R=DR;
else L=ST;
}
printf("%d",a[k]);
return 0;
}