Pagini recente » Cod sursa (job #1145569) | Cod sursa (job #1938968) | Cod sursa (job #2022920) | Cod sursa (job #928841) | Cod sursa (job #2830250)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
int N, K;
vector<int> v;
/// gasim pivotul
int pivot(int st, int dr)
{
int i=st, j=dr, d=0;
while(i<j){
if(v[i]>v[j]){
swap(v[i],v[j]);
d=1-d;
}
i+=d;
j-=1-d;
}
return i;
}
int quickSelect(int st, int dr, int nr)
{
int poz=pivot(st,dr);
if(poz-st+1==nr)
return v[poz];
if(poz-st+1>nr)
return quickSelect(st,poz-1,nr);
return quickSelect(poz+1,dr,nr-(poz-st+1));
}
int main()
{
fin>>N>>K;
int x;
for(int i=0;i<N;i++){
fin>>x;
v.push_back(x);
}
fout<<quickSelect(0,N-1,K);
fin.close();
fout.close();
return 0;
}