Pagini recente » Cod sursa (job #1908081) | Cod sursa (job #2095391) | Cod sursa (job #2904324) | Cod sursa (job #2214166) | Cod sursa (job #1149079)
#include <stdio.h>
#define N_MAX 3000000
int v[ N_MAX ];
void qs ( int st, int dr, int k ){
int i = st, j = dr, piv = v[ ( dr + st ) / 2 ], aux;
while ( i <= j ){
while ( v[ i ] < piv ) i++;
while ( v[ j ] > piv ) j--;
if ( i <= j ){
aux = v[ i ]; v[ i ] = v[ j ]; v[ j ] = aux;
i++; j--;
}
}
if ( i <= k ){
if ( i < dr ) qs ( i, dr, k );
}
else if ( j > st ) qs ( st, j, k );
return ;
}
int main()
{
FILE *in = fopen ( "sdo.in", "r" );
int n, k;
fscanf ( in, "%d%d", &n, &k );
int i;
for ( i = 0; i < n; i++ ){
fscanf ( in, "%d", &v[ i ] );
}
fclose ( in );
qs ( 0, n - 1, k - 1 );
FILE *out = fopen ( "sdo.out", "w" );
fprintf ( out, "%d", v[ k - 1 ] );
fclose ( out );
return 0;
}