Pagini recente » Cod sursa (job #3283984) | Cod sursa (job #2255540) | Cod sursa (job #2627076) | Cod sursa (job #1774038) | Cod sursa (job #2669892)
#include <stdio.h>
#include <algorithm>
using namespace std;
#define NMAX 3000000
int v[NMAX + 5];
void nth(int begin, int end,int ind){
int pivot = v[(begin + end) / 2];
int b = begin, e = end;
while (v[b] < pivot)
b++;
while (v[e] > pivot)
e--;
while(b < e){
swap(v[b] , v[e]);
do
b++;
while(v[b] < pivot);
do
e--;
while(v[e] > pivot);
}
if (begin < e && ind <= e)
nth(begin, e,ind);
if (e + 1 < end)
nth(e + 1, end, ind);
}
int main(){
FILE *fin,*fout;
fin = fopen("sdo.in","r");
fout = fopen("sdo.out","w ");
int n, k, i;
fscanf(fin ,"%d%d", &n ,&k);
for(i = 0; i < n; i++){
fscanf(fin,"%d",&v[i]);
}
nth(0,n - 1, --k);
fprintf( fout,"%d" ,v[k]);
return 0;
}