Pagini recente » Cod sursa (job #2811483) | Cod sursa (job #3207572) | Cod sursa (job #2830486) | Cod sursa (job #973896) | Cod sursa (job #3324731)
#include <iostream>
#include <vector>
using namespace std;
vector<int>nr;
int n, k;
int pivotare(int st, int dr)
{
int i = st;
int pivot = nr[dr];
for(int j = st; j < dr; j++)
{
if(nr[j] <= pivot)
{
swap(nr[j], nr[i]);
i++;
}
}
swap(nr[dr], nr[i]);
return i;
}
int QS(int st, int dr)
{
if(st<dr)
{
int indice = pivotare(st, dr);
if(k == indice)
return nr[k];
if(k < indice)
{
QS(st, indice-1);
}
else
QS(indice+1, dr);
}
}
int main()
{
cin >> n >> k;
int x;
nr.push_back(99999999);
for(int i = 1; i <= n; i++)
{
cin >> x;
nr.push_back(x);
}
cout << QS(1, n);
return 0;
}