Pagini recente » Cod sursa (job #62008) | Cod sursa (job #158000) | Cod sursa (job #1904381) | Cod sursa (job #995267) | Cod sursa (job #2983613)
#include<bits/stdc++.h>
using namespace std;
ifstream in("sdo.in");
ofstream out("sdo.out");
const int NMAX=3e6+5;
int vec[NMAX];
int n,k;
void citire(){
in>>n>>k;
for(int i=1;i<=n;++i)
in>>vec[i];
}
void qs(int begin,int end){
if(begin>=end)
return;
//partition part
int med=(begin+end)/2;
int ff=begin;
swap(vec[end],vec[med]);
for(int i=begin;i<end;i++)
if(vec[i]<vec[end]){
swap(vec[i],vec[ff]);
ff++;
}
swap(vec[end],vec[ff]);
//partition part
//recall part
if(ff==k)
return;
if(ff>k)
qs(begin,ff-1);
if(ff<k)
qs(ff+1,end);
//recall part
}
int main(){
citire();
qs(1,n);
out<<vec[k];
}