Pagini recente » Cod sursa (job #2211554) | Monitorul de evaluare | Cod sursa (job #2501430) | Istoria paginii runda/ceva_1/clasament | Cod sursa (job #1065723)
#include<fstream>
#include<ctime>
#include<algorithm>
#include<cstdlib>
using namespace std;
int A[3000001],N,K;
void dei(int st,int dr)
{
if(st==dr) return;
int i=st,j=dr,p=A[st+rand()%(dr-st+1)];
for(;;)
{
for(; A[i]<p; ++i);
for(; p<A[j]; --j);
if(i<j) swap(A[i],A[j]);
else break;
}
if(i>=K) dei(st,i);
else dei(i+1,dr);
}
int main()
{
int i;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
srand(time(NULL));
fin>>N>>K;
K--;
for(i=0; i<N; ++i)
fin>>A[i];
dei(0,N-1);
fout<<A[K];
fin.close();
fout.close();
return 0;
}