Pagini recente » Cod sursa (job #871591) | Cod sursa (job #22114) | Cod sursa (job #492357) | Cod sursa (job #551264) | Cod sursa (job #1465484)
#include <fstream>
#include <stdlib.h>
#include <time.h>
using namespace std;
ofstream fout("sdo.out");
ifstream fin("sdo.in");
const int NMAX = 3000010;
int v[NMAX], n, k;
void quicksort(int st, int dr)
{
int i = st, j = dr, p = v[rand() % (dr - st + 1) + 1];
while(i <= j) {
while(v[i] < p) i++;
while(v[j] > p) j--;
if(i <= j) swap(v[i], v[j]), i++, j--;
}
if(st < j && k <= j) quicksort(st, j);
if(i < dr && k >= i) quicksort(i, dr);
}
int main()
{
srand(time(0));
fin >> n >> k;
k--;
for(int i=0; i<n; i++) fin >> v[i];
quicksort(0, n-1);
fout << v[k] << '\n';
return 0;
}