Pagini recente » Cod sursa (job #1821602) | Cod sursa (job #441357) | Cod sursa (job #3277613) | Cod sursa (job #1019947) | Cod sursa (job #3326644)
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
vector<int> nr;
int n, k;
int pivotare(int st, int dr)
{
int pivot = nr[dr];
int i = st;
for(int j = st; j < dr; j++)
if(nr[j] <= pivot)
swap(nr[j], nr[i++]);
swap(nr[i], nr[dr]);
return i;
}
int QS(int st, int dr)
{
if (st == dr)
return nr[st];
int indice = pivotare(st, dr);
if (indice == k)
return nr[indice];
else if (k < indice)
return QS(st, indice - 1);
else
return QS(indice + 1, dr);
}
int main()
{
fin >> n >> k;
nr.resize(n + 1);
for(int i = 1; i <= n; i++)
fin >> nr[i];
fout << QS(1, n);
return 0;
}