Pagini recente » Cod sursa (job #1546328) | Cod sursa (job #3203225) | Cod sursa (job #1316045) | Cod sursa (job #355216) | Cod sursa (job #2624279)
#include <fstream>
#include <stdlib.h>
using namespace std;
int v[3000001], n, k;
void swap(int *x, int *y){
int temp = *x;
*x = *y;
*y = temp;
}
int partition(long int l, long int r){
int pivot = v[l + (rand() % (r - l + 1))];
int i = l-1;
for (int j = l; j < r; j++){
if(v[j] <= pivot){
i++;
swap(&v[i], &v[j]);
}
}
swap(&v[i+1], &v[r]);
return i+1;
}
void quickSort(long int st, long int dr){
if(st < dr){
int ind_pivot = partition(st, dr);
quickSort(st, ind_pivot - 1);
quickSort(ind_pivot + 1, dr);
}
}
int main() {
ifstream f("sdo.in");
ofstream g("sdo.out");
f >> n >> k;
for(int i = 0; i < n; i++)
f >> v[i];
quickSort(0, n);
g << v[k-1];
return 0;
}