Pagini recente » Cod sursa (job #249610) | Cod sursa (job #2330255) | Cod sursa (job #102915) | Cod sursa (job #3238966) | Cod sursa (job #2857083)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
int n,k;
vector<int*> v;
int vec[3000003];
int sdo(vector<int*> val, int p)
{
//cout<<"a";
int bigger=0,smaller=0;
int* nr=val[0];
vector<int*> vbigger,vsmaller;
for(int i=1; i<val.size(); i++)
{
//cout<<*val[i]<<" ";
if(*val[i]<=*nr)
{
smaller++;
vsmaller.push_back(val[i]);
}
else
{
vbigger.push_back(val[i]);
bigger++;
}
}
smaller++;
if(p<smaller) return sdo(vsmaller,p);
else if(p>smaller) return sdo(vbigger,p-smaller);
else return *val[0];
}
int main()
{
fin>>n>>k;
v.resize(n);
for(int i=0; i<n; ++i)
{
fin>>vec[i];
v[i]=&vec[i];
}
fout<<sdo(v,k);
return 0;
}