Pagini recente » Statistici Mihai Zgonea (Mishulik) | Statistici crisan cristian (cristi05) | Cod sursa (job #2032914) | Diferente pentru monthly-2012/runda-9/solutii intre reviziile 24 si 25 | Cod sursa (job #1520239)
#include <fstream>
using namespace std;
int v[3000000], n,k,stg,dr,li,ls,mij,aux;
ifstream in("sdo.in");
ofstream out("sdo.out");
int quick(int li, int ls)
{ int stg=li, dr=ls, x=v[li], aux;
while (stg<dr)
{
while (stg<dr && v[dr]>x)
dr--;
v[stg]=v[dr];
while(stg<dr && v[stg]<x)
stg++;
v[dr]=v[stg];
v[stg]=x;
if(k<=dr)
ls=dr;
else
if(k>=stg)
li=stg;
else
li=ls=k;
}
return stg;
}
void sortare(int li, int ls)
{if(li<ls)
{int m=quick(li,ls);
if(li<m)
sortare(li,m-1);
if(m<ls)
sortare(m+1,ls);}
}
int main()
{ in>>n>>k;
int i;
for(i=1;i<=n;i++)
in>>v[i];
sortare(1,n);
out<<v[k];
return 0;
}