Pagini recente » Stiva3 | Diferente pentru utilizator/popoiu.george intre reviziile 39 si 40 | Diferente pentru preoni-2008/runda-finala/9 intre reviziile 5 si 6 | Statistici Yael Arn (42kangaroo) | Cod sursa (job #1766064)
#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[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();
return 0;
}