Pagini recente » Cod sursa (job #2231068) | Cod sursa (job #2226834) | Cod sursa (job #580121) | Cod sursa (job #2043885) | Cod sursa (job #2037676)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
unsigned long v[4100000], n, k, V_K;
void citire(unsigned long& n, unsigned long& k)
{
unsigned long i;
fin>>n>>k;
for(i=1;i<=n;i++)
{
fin>>v[i];
}
}
void quicksort(unsigned long x1, unsigned long x2,unsigned long& V_K)
{
unsigned long i, aux, x3=x2, med;
med=x1+(x2-x1)/2;
aux=v[med];
v[med]=v[x3];
v[x3]=aux;
for(i=x1;i<=x3;i++)
{
if(v[i]>v[x3])
{
aux=v[x3];
v[x3]=v[x3-1];
v[x3-1]=aux;
if(x3!=i+1)
{
aux=v[x3];
v[x3]=v[i];
v[i]=aux;
}
i=i-1;
x3=x3-1;
}
}
if(x3==k)
{
V_K=v[x3];
}
else
{
if(x3>k)
{
if(x3-x1>=2)
{
quicksort(x1, x3-1, V_K);
}
else
{
V_K=v[x3-1];
}
}
if(x3<k)
{
if(x2-x3>=2)
{
quicksort(x3+1, x2, V_K);
}
else
{
V_K=v[x3+1];
}
}
}
}
void afisare(unsigned V_k)
{
fout<<V_k;
}
int main()
{
citire(n, k);
quicksort(1, n, V_K);
afisare(V_K);
}