Pagini recente » Cod sursa (job #2493949) | Rating David Dumitrescu (MasterStridie) | Cod sursa (job #2273690) | Cod sursa (job #1901818) | Cod sursa (job #2983583)
#include<bits/stdc++.h>
using namespace std;
ifstream in("sdo.in");
ofstream out("sdo.out");
vector<int> vec;
int n,k;
void citire(){
int aux;
in>>n>>k;
for(int i=1;i<=n;++i){
in>>aux;
vec.push_back(aux);
}
}
void qs(int begin,int end){
//partition part
int pivot=vec[begin+end/2];
int b=begin,e=end;
do{
do
b++;
while(vec[b]<pivot);
do
e--;
while(vec[e]>pivot);
if(b<e)
swap(vec[b],vec[e]);
}while(b<e);
//partition part
//recall part
if(begin<e and k<=e)
qs(begin,e);
else if(e+1<end)
qs(e+1,end);
//recall part
}
int main(){
citire();
k--;
qs(0,n-1);
out<<vec[k];
}