Pagini recente » Autentificare | Cod sursa (job #491145) | Cod sursa (job #444869) | Cod sursa (job #2014119) | Cod sursa (job #1520261)
#include <fstream>
#include <iostream>
using namespace std;
int v[3000000], n,k,stg,dr,li,ls,mij,aux;
ifstream in("sdo.in");
ofstream out("sdo.out");
int main()
{int i;
in>>n>>k;
for(i=1; i<=n; i++)
in>>v[i];
li=1;
ls=n;
while(li<ls)
{stg=li;
dr=ls;
mij=v[(li+ls)/2];
while(stg<=dr)
{while(v[stg]<mij)
stg++;
//cout<<"stg="<<stg<<' ';
while(v[dr]>mij)
dr--;
//cout<<"\ndr="<<dr<<endl;
if(stg<=dr)
{aux=v[stg];
v[stg]=v[dr];
v[dr]=aux;
stg++;
dr--;
}
}
if(k<=dr)
ls=dr;
else
if(k>=stg)
li=stg;
else
{li=k;
ls=k;}
}
/*for(i=1; i<=n; i++)
cout<<v[i]<<' ';
cout<<endl;*/
out<<v[k];
in.close();
out.close();
return 0;
}