Pagini recente » Cod sursa (job #82396) | Cod sursa (job #90471) | Cod sursa (job #2592940) | Cod sursa (job #700672) | Cod sursa (job #3326745)
#include <bits/stdc++.h>
const int MAXN = 3000000;
using namespace std;
int v[MAXN + 5];
void qs ( int v[], int begin, int end ) {
int pivot = v[begin + rand() % ( end - begin + 1 )];
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 )
qs ( v, begin, e );
if ( e + 1 < end )
qs ( v, e + 1, end );
}
int main() {
ifstream fin( "sdo.in" );
ofstream fout( "sdo.out" );
int n, k;
fin >> n >> k;
for ( int i = 0; i < n; i++ ) {
fin >> v[i];
}
qs ( v, 0, n - 1 );
fout << v[k - 1];
return 0;
}