Pagini recente » Cod sursa (job #2888171) | Cod sursa (job #2774660) | Cod sursa (job #60780) | Cod sursa (job #2893659) | Cod sursa (job #1935142)
#include <iostream>
#include <fstream>
/*#include <cstdlib>
#include <ctime>*/
#define maxN 3000003
using namespace std;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
int n,k,v[maxN];
int getKthElement(int left, int right, int k)
{
while (left<right)
{
int p=left, q=right, pivot=v[(p+q)/2];
while (p<q)
{
if (v[p]>=pivot) { swap(v[p],v[q]); --q; }
else ++p;
}
if (v[q]>pivot) --q;
if (k<=q) right=q;
else left=q+1;
}
return v[k];
}
int main()
{
//srand(time(NULL));
fin>>n>>k;
for (int i=1; i<=n; ++i)
fin>>v[i];
fout<<getKthElement(1,n,k);
return 0;
}