Pagini recente » Cod sursa (job #1844782) | Cod sursa (job #855884) | Cod sursa (job #1581503) | Cod sursa (job #1635684) | Cod sursa (job #854294)
Cod sursa(job #854294)
#include<fstream>
#include<vector>
#include<ctime>
#include<cstdlib>
using namespace std;
int n,k;
vector <int> v;
ifstream in("sdo.in");
ofstream out("sdo.out");
void scan()
{
int a;
in>>n>>k;
for (int i=1;i<=n;i++)
{
in>>a;
v.push_back(a);
}
}
int pivot(int st,int dr)
{
int a,b,c;
srand(time(NULL));
a=st+rand()%(dr-st+1);
return a;
}
int part(int st,int dr)
{
int i,j,p;
int aux;
i=st-1;
p=pivot(st,dr);
aux=v[p];
v[p]=v[dr];
v[dr]=aux;
p=v[dr];
for (j=st;j<dr;j++)
{
if (v[j]<=p)
{
++i;
aux=v[j];
v[j]=v[i];
v[i]=aux;
}
}
++i;
aux=v[i];
v[i]=v[dr];
v[dr]=aux;
return i;
}
int search(int st,int dr)
{
int p;
p=part(st,dr);
if (p==k-1)
return v[p];
if (p<k-1)
search(p+1,dr);
else search(st,p-1);
}
int main()
{
scan();
out<<search(0,n-1);
return 0;
}