Pagini recente » Cod sursa (job #2974900) | Cod sursa (job #935749) | Cod sursa (job #656532) | Cod sursa (job #1636269) | Cod sursa (job #551890)
Cod sursa(job #551890)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
int n,k,a[3000001];
void read();
void sdo(int,int,int);
void write();
int main()
{
read();
sdo(1,n,k);
write();
return 0;
}
void read()
{
int i;
f>>n>>k;
for (i=1;i<=n;++i)
f>>a[i];
}
void sdo(int in,int sf,int k)
{
int nr,i,j,x;
x=rand()%(sf-in+1)+in;
nr=a[x];
swap(a[x],a[sf]);
i=in-1;
for (j=in;j<sf;++j)
if (a[j]<=nr)
{
++i;
swap (a[i],a[j]);
}
swap (a[i+1],a[sf]);
nr=i+1;
if (nr==k) return;
else if (nr>k) sdo(in,nr-1,k);
else sdo(nr+1,sf,k);
}
void write()
{
g<<a[k];
}