Pagini recente » Cod sursa (job #1224127) | Cod sursa (job #1901496) | Cod sursa (job #3265534) | Cod sursa (job #2603715) | Cod sursa (job #2347316)
//include <bits/stdc++.h>
#include <stdio.h>
#include <stdlib.h>
#include <cstdlib>
int v[3000000];
int n, k;
int ksort( int st, int dr ) {
int i, j, pivot, aux;
i = st;
j = dr;
pivot = v[ st + std::rand() % ( dr - st + 1 ) ];
while ( i <= j ) {
while ( i < dr && v[i] < pivot )
i++;
while ( st < j && pivot < v[j] )
j--;
if ( i <= j ) {
aux = v[i];
v[i] = v[j];
v[j] = aux;
i++;
j--;
}
}
if ( k >= i && i < dr ) {
ksort( i, dr );
} else if ( k <= j && st < j ) {
ksort( st, j );
}
}
int main() {
FILE *fin, *fout;
int i;
fin = fopen( "sdo.in", "r" );
fout = fopen( "sdo.out", "w" );
fscanf( fin, "%d%d", &n, &k );
k--;
for ( i = 0; i < n; i++ )
fscanf( fin, "%d", &v[i] );
ksort( 0, n - 1 );
fprintf( fout, "%d", v[k] );
fclose( fin );
fclose( fout );
return 0;
}