Pagini recente » Cod sursa (job #2549510) | Cod sursa (job #135221) | Cod sursa (job #2579522) | Cod sursa (job #375160) | Cod sursa (job #2861688)
#include<cstdio>
#include<cstdlib>
#include<ctime>
#include<vector>
using namespace std;
FILE*in=fopen("sdo.in","r");
FILE*out=fopen("sdo.out","w");
const int NMAX=3000007;
int n,k,i,a,r;
vector<int> v;
void sol(vector<int> &ve,int p)
{
vector<int> st,dr;
int ra=rand()%ve.size();
int el=ve[ra];
for(int j=0;j<ra;j++)
{
if(ve[j]<=el)
{
st.push_back(ve[j]);
}
else
{
dr.push_back(ve[j]);
}
}
for(int j=ra+1;j<ve.size();j++)
{
if(ve[j]<=el)
{
st.push_back(ve[j]);
}
else
{
dr.push_back(ve[j]);
}
}
if(st.size()==p-1)
{
r=el;
}
else if(st.size()>p-1)
{
sol(st,p);
}
else
{
sol(dr,p-1-st.size());
}
}
int main()
{
fscanf(in,"%d%d",&n,&k);
for(i=1;i<=n;i++)
{
fscanf(in,"%d",&a);
v.push_back(a);
}
sol(v,k);
fprintf(out,"%d",r);
}