Pagini recente » Cod sursa (job #3294007) | Cod sursa (job #725285) | Cod sursa (job #2819681) | Cod sursa (job #2826202) | Cod sursa (job #473134)
Cod sursa(job #473134)
#include<stdio.h>
#define NMAX 3000003
int n,k,i,l,r,m,p,d;
int M[NMAX];
int qsort(int l,int r) {
d=0;
p=M[l];
while(l<r) {
if(M[l]>M[r]) {
M[l]^=M[r];
M[r]^=M[l];
M[l]^=M[r];
d=1-d;
}
if(d)
do l++; while(M[l]<M[r]);
else
do r--; while(M[l]<M[r]);
}
return l;
}
int main() {
freopen("sdo.in","r",stdin);
freopen("sdo.out","w",stdout);
scanf("%d%d",&n,&k);
--k;
for(i=0;i<n;i++) scanf("%d",M+i);
l=0;
r=n-1;
do {
m=qsort(l,r);
if(m<k) l=m+1;
else r=m-1;
} while(m!=k);
printf("%d\n",M[m]);
return 0;
}