Pagini recente » Cod sursa (job #1386212) | Cod sursa (job #826963) | Cod sursa (job #2400601) | Cod sursa (job #1770220) | Cod sursa (job #661028)
Cod sursa(job #661028)
#include <fstream>
#include <cstdlib>
using namespace std;
const int N=3000005;
int v[N];
ifstream in("sdo.in");
ofstream out("sdo.out");
inline void sch(int &a,int &b)
{
int c=a;a=b;b=c;
}
int sdo(int st,int dr,int k)
{
int p=v[st+rand()%(dr-st+1)],i,j;
for (i=st,j=dr;i<j;)
{
for (;i<j && v[i]<p;i++);
for (;i<j && v[j]>p;j--);
if (i<j)
sch(v[i],v[j]);
}
if (i==k)
return v[i];
if (k<i)
return sdo(st,i-1,k);
return sdo(i+1,dr,k);
}
int main()
{
int n,k;
in>>n>>k;
for (int i=1;i<=n;i++)
in>>v[i];
out<<sdo(1,n,k)<<"\n";
return 0;
}