Pagini recente » Cod sursa (job #1668072) | Cod sursa (job #969564) | Cod sursa (job #1020873) | Cod sursa (job #2045025) | Cod sursa (job #856846)
Cod sursa(job #856846)
#include<cstdio>
#include<cstdlib>
#include<ctime>
using namespace std;
int n,k,a[3000001];
void quick(int l,int r){
if(l>=r) return;
int piv=rand()%(r-l+1)+l;
int x=l,y=r,aux;
while(x<=y){
while(a[x]<a[piv])
++x;
while(a[y]>a[piv])
--y;
if(x<=y){
aux=a[x];
a[x]=a[y];
a[y]=aux;
++x; --y;
}
}
if(y+1==k){
printf("%d",a[k]);
return;
}
if(k>=x)
quick(x,r);
else
quick(l,y);
}
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",a+i);
}
srand(time(NULL));
quick(1,n);
}