Pagini recente » Cod sursa (job #2186633) | Cod sursa (job #26596) | Cod sursa (job #678241) | Cod sursa (job #2136443) | Cod sursa (job #2384569)
#include <iostream>
#include <fstream>
#define NMAX 4000001
using namespace std;
int v [NMAX], k ;
void statisticideordine (int begin, int end, int v [NMAX], int k ) {
int b, e, pivot ;
b = begin, e = end, pivot = v [ ( begin + end ) / 2 ] ;
while (b <= e ) {
while (v[b] < pivot ) b++;
while (v[e] > pivot ) e--;
if (b <= e ) {
swap (v[b], v[e]) ;
b++;
e--;
}
}
if (e >= k )
statisticideordine(begin, e, v, k ) ;
else {
if (k >= b )
statisticideordine(b, end, v, k ) ;
else
return ;
}
}
int main() {
ifstream fin ("sdo.in") ;
ofstream fout ("sdo.out") ;
int n, i ;
fin >> n >> k ;
for (i = 1 ; i <= n ; i++ )
fin >> v[i] ;
statisticideordine(1, n, v, k ) ;
fout << v[k] ;
return 0;
}