Pagini recente » Cod sursa (job #1481970) | Cod sursa (job #1906730) | Cod sursa (job #762126) | Cod sursa (job #2119283) | Cod sursa (job #1060155)
#include <fstream>
#include <cstdlib>
using namespace std;
ifstream in("quick.in");
ofstream out("quick.out");
int v[3000000];
void change(int a, int b)
{
int k=v[a];
v[a]=v[b];
v[b]=k;
}
int pozitie(int a, int b)
{
int i, j, r;
r=rand()*rand()%(b-a+1)+a;
change(r, b);
for(i=j=a;i<b;i++)
if(v[i]<v[b])
change(j++, i);
change(j, b);
return j;
}
void quicksort(int a, int b)
{
if(a>=b) return;
int p=pozitie(a, b);
quicksort(a, p-1);
quicksort(p+1, b);
}
int main()
{
int n, i, k;
in>>n>>k;
for(i=1;i<=n;i++)
{
in>>v[i];
}
quicksort(1, n);
out<<v[k];
return 0;
}