Pagini recente » Cod sursa (job #884552) | Cod sursa (job #2255181) | Statistici Mihai Cosmin (mihaicosmin2011) | Borderoul de evaluare | Cod sursa (job #2462389)
#include <fstream>
#include <vector>
using VectorIterator = std::vector<long>::iterator;
using Vector = std::vector<long>;
VectorIterator compare(VectorIterator left, VectorIterator right)
{
VectorIterator pivot = right;
while(left < pivot)
{
while(*left > *pivot)
{
std::swap(*left, *(pivot - 1));
std::swap(*(pivot-1), *pivot);
--pivot;
}
++left;
}
return pivot;
}
void quickSort(VectorIterator left, VectorIterator right)
{
if( left < right )
{
VectorIterator pivot = compare(left, right);
quickSort(left, pivot - 1);
quickSort(pivot + 1, right);
}
}
void quickSort(Vector& v)
{
quickSort(v.begin(), v.end()-1);
}
int main()
{
std::ifstream fin("sdo.in");
std::ofstream fout("sdo.out");
int n=0, k=0, i=0;
long x=0;
fin>>n>>k;
Vector v;
for(i=0; i<n ; ++i){
fin>>x;
v.push_back(x);
}
quickSort(v);
fout<<v[k-1];
return 0;
}