Pagini recente » Cod sursa (job #266580) | Cod sursa (job #2774231) | Cod sursa (job #2383363) | Cod sursa (job #671612) | Cod sursa (job #2431312)
#include <iostream>
#include <fstream>
#include <random>
using namespace std;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
int a[3000010];
int k,res=-121;
void quicksort(int st,int dr)
{
if(st<dr && res ==-121)
{
int randomIndex = st + rand()%(dr-st);
int pivot = a[randomIndex];
int i=st-1,j=dr+1;
while(true)
{
do
{
i++;
}
while(a[i]<pivot);
do
{
j--;
}
while(a[j]>pivot);
if(i<j)
swap(a[i],a[j]);
else
break;
}
if(i+1==k)
res = pivot;
quicksort(st,i-1);
quicksort(i+1,dr);
}
}
int main()
{
int n;
fin>>n>>k;
srand(n+k);
for(int i = 0;i<n;i++)
fin>>a[i];
quicksort(0,n-1);
cout<<res<<endl;
return 0;
}