Pagini recente » Cod sursa (job #1533374) | Cod sursa (job #2070628) | Cod sursa (job #2519218) | Cod sursa (job #922676) | Cod sursa (job #2737065)
#include <bits/stdc++.h>
using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
int v[3000005],a[3000005],n,k;
int quick_sort(int st,int dr)
{
int pivot=st+rand()%(dr-st+1);
int index=st-1;
int poz1,poz2,i;
for (i=st;i<=dr;i++)
{
if (v[i]<v[pivot])
{
a[++index]=v[i];
}
}
poz1=index+1;
for (i=st;i<=dr;i++)
{
if (v[i]==v[pivot])
{
a[++index]=v[i];
}
}
poz2=index;
for (i=st;i<=dr;i++)
{
if (v[i]>v[pivot])
{
a[++index]=v[i];
}
}
for (i=st;i<=dr;i++)
{
v[i]=a[i];
}
if (poz1<=k&&k<=poz2)
{
return v[poz1];
}
if (k<poz1)
{
return quick_sort(st,poz1-1);
}
if (k>poz2)
{
return quick_sort(poz2+1,dr);
}
}
int main()
{
f>>n>>k;
for (int i=1;i<=n;i++)
{
f>>v[i];
}
g<<quick_sort(1,n);
return 0;
}