Pagini recente » Cod sursa (job #226102) | Cod sursa (job #79974) | Cod sursa (job #1205494) | Cod sursa (job #2386858) | Cod sursa (job #2975252)
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 3e6;
ifstream fin( "sdo.in" );
ofstream fout( "sdo.out" );
int v[MAXN];
void qsort(int v[], int k, 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 && k <= e )
qsort( v, k, begin, e);
else if( e + 1 < end )
qsort( v, k, e + 1, end) ;
}
int main() {
int n, k, i;
fin >> n >> k;
for( i = 0; i < n; i++ )
fin >> v[i];
qsort( v, k - 1, 0, n - 1 );
fout << v[k-1];
return 0;
}