Pagini recente » Cod sursa (job #2563850) | Cod sursa (job #2324089) | Cod sursa (job #79912) | Cod sursa (job #767323) | Cod sursa (job #651928)
Cod sursa(job #651928)
#include <cstdio>
#define file_in "sdo.in"
#define file_out "sdo.out"
int i,N,K,V[3010001];
void quicksort(int left, int right, int K){
int i=left;
int j=right;
int k=right-left+1;
int middle;
middle=V[(i+j)/2];
do{
while(middle>V[i] && i<=N) i++;
while(middle<V[j] && j>=1) j--;
if (i<=j){
int aux=V[i];
V[i]=V[j];
V[j]=aux;
i++;
j--;
}
}
while(i<=j);
if (left<j && j-left+1>=K)
quicksort(left,j,K);
if (i<right && j-left+1<K)
quicksort(i,right,K-(j-left+1));
}
int main(){
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d %d", &N, &K);
for (i=1;i<=N;++i)
scanf("%d", &V[i]);
quicksort(1,N,K);
printf("%d\n", V[K]);
return 0;
}