Pagini recente » Cod sursa (job #3259607) | Cod sursa (job #2436328) | Cod sursa (job #537234) | Cod sursa (job #2172342) | Cod sursa (job #1868316)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("sdo.in");
ofstream out("sdo.out");
int n, k;
int v[3000000];
int partition(int v[], int left, int right) {
int i = left, j = right;
int random = rand() % right + left;
int pivot = v[random];
while (i <= j) {
while (v[i] < pivot) i++;
while (v[j] > pivot) j--;
if (i <= j) {
int aux = v[i];
v[i] = v[j];
v[j] = aux;
i++; j--;
}
}
return i;
}
void quicksort(int v[], int left, int right) {
int index = partition(v, left, right);
if (left < index - 1)
quicksort(v, left, index - 1);
if (right > index)
quicksort(v, index, right);
}
int main()
{
in >> n >> k;
for (int i = 0; i < n; i++) {
in >> v[i];
}
quicksort(v, 0, n - 1);
out << v[k - 1];
}