Pagini recente » Cod sursa (job #3248845) | Cod sursa (job #1363138) | Cod sursa (job #2726517) | Cod sursa (job #2676971) | Cod sursa (job #1766065)
#include <fstream>
using namespace std;
void orderStatistic(int left, int right, int k, int arr[])
{
int i = left, j = right;
int pivot = arr[left + (right - left) / 2];
while (i <= j)
{
while (arr[i] < pivot)
i++;
while (arr[j] > pivot)
j--;
if (i <= j)
{
swap(arr[i], arr[j]);
i++;
j--;
}
}
if (left < j && k >= left && k <= j)
orderStatistic(left, j, k, arr);
if (i < right && k >= i && k <= right)
orderStatistic(i, right, k, arr);
}
int main()
{
int N, k;
ifstream f("sdo.in");
f >> N >> k;
int *arr = new int[N];
for (int i = 0; i < N; i++)
f >> arr[i];
f.close();
orderStatistic(0, N - 1, k - 1, arr);
ofstream g("sdo.out");
g << arr[k - 1];
g.close();
delete[] arr;
return 0;
}