Pagini recente » Cod sursa (job #1829594) | Cod sursa (job #714993) | Cod sursa (job #1692934) | Cod sursa (job #1987161) | Cod sursa (job #1784199)
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
int v[3000001],n,k;
int partitie(int st, int dr)
{
int i,j,poz;
poz=st+rand()%(dr-st+1);
swap(v[poz],v[dr]);
j=st;
for(i=st; i<dr; i++)
if(v[i]<v[dr])
swap(v[i],v[j++]);
swap(v[j],v[dr]);
return j;
}
void quick_sort(int st, int dr, int k)
{
int p;
if(st>=dr)
return;
p=partitie(st,dr);
if(p>k)
quick_sort(st,p-1,k);
else if(p<k)
quick_sort(p+1,dr,k);
else
return;
}
int main()
{
ifstream fin ("sdo.in");
ofstream fout ("sdo.out");
int i;
fin>>n>>k;
for(i=1; i<=n; i++)
fin>>v[i];
quick_sort(1,n,k);
fout<<v[k];
return 0;
}