Pagini recente » Cod sursa (job #1027725) | Cod sursa (job #2097455) | Cod sursa (job #2589675) | Cod sursa (job #703528) | Cod sursa (job #1009164)
#include<fstream>
using namespace std;
int n,v[3000003],k;
int quicksort(int x,int y)
{
int cl=x,cr=y,piv=rand()%(y-x)+x,sw;
while(cr!=cl)
{
while(v[cl]<=v[piv]&&cl!=piv)
cl++;
while(v[cr]>=v[piv]&&cr!=piv)
cr--;
if(cr!=cl)
{
sw=v[cr];
v[cr]=v[cl];
v[cl]=sw;
if(cl==piv)
piv=cr;
else
if(cr==piv)
piv=cl;
}
}
if(piv==k)
return piv;
if(x<piv-1&&k<piv)
return quicksort(x,piv-1);
if(y>piv+1&&k>piv)
return quicksort(piv+1,y);
}
int main(void)
{
int i;
ifstream f("sdo.in");
ofstream g("sdo.out");
f>>n>>k;
for(i=1;i<=n;i++)
f>>v[i];
g<<v[quicksort(1,n)];
f.close();
g.close();
return 0;
}