Pagini recente » Cod sursa (job #630618) | Cod sursa (job #1483945) | Cod sursa (job #1560046) | Cod sursa (job #1216976) | Cod sursa (job #1075433)
#include <cstdlib>
#include <fstream>
using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
int v[3000001],n,k;
int partitie (int ls, int rd)
{
int p = rand()%(rd-ls+1)+ls;
swap(v[p],v[rd]);
int crt = ls;
for (int i=ls; i<rd; ++i)
{
if(v[i]<v[rd])
{
swap(v[crt],v[i]);
crt++;
}
}
swap(v[crt],v[rd]);
return crt;
}
void sdo(int ls, int rd)
{
if(ls<rd)
{
int p = partitie(ls,rd);
if(p==k);
else if (p<k)
sdo(p+1,rd);
else sdo(ls,p-1);
}
}
int main()
{
f>>n>>k;
for(int i=1; i<=n; ++i)
f>>v[i];
if(n==1)
g<<v[1];
else
{
sdo(1,n);
g<<v[k];
}
return 0;
}