Pagini recente » Cod sursa (job #1388815) | Cod sursa (job #2439823) | Cod sursa (job #320292) | Cod sursa (job #2121368) | Cod sursa (job #3125173)
#include <iostream>
#include <climits>
#include <cstring>
#include <fstream>
using namespace std;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
unsigned int v[3000001],n,k,sol;
unsigned int pivot(int st,int dr){
int dst=0;
int ddr=1;
int mid=(st+dr)/2;
swap(v[st],v[mid]);
while(st<dr){
if(v[st]>v[dr])
{
swap(dst,ddr);
swap(v[st],v[dr]);
}
st=st+dst;
dr=dr-ddr;
}
return st;
}
unsigned int quicksort(int st,int dr){
if(st<dr)
{
int p=pivot(st,dr);
if(p==k)
return v[p];
else
if(k<p)
return quicksort(st,p-1);
else
return quicksort(p+1,dr);
}
}
int main(){
fin>>n>>k;
for(int i=1;i<=n;i++){
fin>>v[i];
}
fout<<quicksort(1,n);
}