Pagini recente » Cod sursa (job #2043209) | Cod sursa (job #3167977) | Cod sursa (job #2973881) | Cod sursa (job #1076839) | Cod sursa (job #2808187)
#include <fstream>
using namespace std;
ifstream cin("statisticiordine.in");
ofstream cout("statisticiordine.out");
unsigned int v[4000001], n, k;
int partitionare(unsigned int v[], int l, int h) {
int pivot = v[l];
int i = l;
int j = h + 1;
while (i < j) {
do {
i++;
} while (v[i] <= pivot);
do {
j--;
} while (v[j] > pivot);
if (i < j) {
swap(v[i], v[j]);
}
}
swap(v[l], v[j]);
return j;
}
void quickSort(unsigned int v[], int l, int h, int k) {
if (l < h) {
int pivot = partitionare(v, l, h);
if (k <= pivot - l + 1)
quickSort(v, l, pivot - 1, k);
else
quickSort(v, pivot + 1, h, k - (pivot - l + 1));
}
}
int main()
{
cin >> n >> k;
for (int i = 0; i < n; ++i) {
cin >> v[i];
}
quickSort(v, 0, n - 1, k);
cout << v[k - 1];
return 0;
}