Pagini recente » Cod sursa (job #749671) | Cod sursa (job #2885861) | Cod sursa (job #2028358) | Cod sursa (job #534682) | Cod sursa (job #3274671)
#include <fstream>
using namespace std;
ifstream fin ("sdo.in");
ofstream fout ("sdo.out");
int v[3000005];
int get_pivot (int left, int right)
{
int pivot = right;
int i = left;
for (int j = left; j < right; j++)
{
if (v[j] <= v[pivot])
{
swap (v[i], v[j]);
i++;
}
}
swap(v[pivot], v[i]);
pivot = i;
return pivot;
}
int quick_sort (int left, int right, int k)
{
if (left == right)
return v[left];
int pivot = get_pivot (left, right);
int index = pivot - left + 1;
if (index == k)
return v[index];
if (index < k)
quick_sort (index+1, right, k - index);
else
quick_sort (left, index-1, k);
}
int main()
{
int n, k;
fin >> n >> k;
for (int i = 1; i <= n; i++)
fin >> v[i];
fout << quick_sort (1, n, k);
return 0;
}