Pagini recente » Cod sursa (job #2198772) | Cod sursa (job #3179705) | Cod sursa (job #2024847) | Cod sursa (job #432673) | Cod sursa (job #2676100)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <ctype.h>
void qsort1(int v[], int k, int begin, int end) {
int pivot, c;
int b = begin, e = end;
while ( begin < end ) {
pivot = v[begin + rand() % (end - begin + 1)];
while (v[b] < pivot)
b++;
while (v[e] > pivot)
e--;
while(b < e) {
c = v[b];
v[b] = v[e];
v[e] = c;
do
b++;
while (v[b] < pivot);
do
e--;
while (v[e] > pivot);
}
if ( k <= e )
end = e;
else
begin = b + 1;
}
}
#define NMAX 3000000
int v[NMAX];
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 );
srand(time(NULL));
for ( i = 0; i < n; i++ ) {
fscanf ( fin, "%d", &v[i] );
}
qsort1(v, k, 0, n - 1);
fprintf( fout, "%d", v[k - 1] );
fclose(fin);
fclose(fout);
return 0;
}