Pagini recente » Cod sursa (job #3201651) | Cod sursa (job #1812108) | Cod sursa (job #1828721) | Cod sursa (job #1281822) | Cod sursa (job #1281805)
#include <fstream>
#include <ctime>
#include <stdlib.h>
using namespace std;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
int v[3000002],i,n,k;
int part(int p,int u){
int x=p+rand()%(u-p);
int aux=v[x];v[x]=v[p];v[p]=aux;
int i=p,j=u;
int ii=0,jj=-1;
while(i!=j){
if(v[i]>v[j]){
swap(v[i],v[j]);
swap(ii,jj);
ii*=-1;
jj*=-1;
}
i+=ii;
j+=jj;
}
return i;
}
void kmin(int p,int u){
int x=part(p,u);
if(x==k){
fout<<v[x];
return;
}
if(x<k)
kmin(x+1,u);
else
kmin(p,x-1);
}
int main(){
//srand(time(0));
fin>>n>>k;
for(i=1;i<=n;i++)
fin>>v[i];
kmin(1,n);
fin.close();fout.close();
return 0;
}