Pagini recente » Cod sursa (job #1338536) | Cod sursa (job #2611972) | Cod sursa (job #1119612) | Cod sursa (job #2740340) | Cod sursa (job #1281882)
#include <fstream>
#include <stdlib.h>
#include <time.h>
using namespace std;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
int v[3000005],n,i,k;
int poz (int p , int u){
int i=p, j=u, ii=0, jj=-1 , aux;
int x = p+rand()%(u-p+1);
aux=v[x];v[x]=v[p];v[p]=aux;
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 sorteaza(int p, int u){
int m=poz(p,u);
if(m==k){
fout<<v[k];
return;
}
if(m>k){
sorteaza(p,m-1);
}
else{
sorteaza(m+1,u);
}
}
int main(){
srand(time(0));
fin>>n>>k;
for(i=1;i<=n;i++){
fin>>v[i];
}
sorteaza(1,n);
return 0;
}