Cod sursa(job #768905)

Utilizator ion824Ion Ureche ion824 Data 17 iulie 2012 21:06:15
Problema Statistici de ordine Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<fstream>
#include<cstdlib>
using namespace std;
int a[3000005],N,K,sw;

void quicksort(int lb,int ub){
    int i=lb,j=ub,p=a[lb+rand()%(ub-lb+1)];       
    do{
       while(a[i]<p)++i; 
       while(a[j]>p)--j;
       if(i<=j){ sw=a[i]; a[i]=a[j]; a[j]=sw; ++i; --j; }
       }while(i<=j); 
       
    if(lb<j)quicksort(lb,j);         
    if(ub>i && i<=K)quicksort(i,ub);                        
}

int main(void){
    ifstream fin("sdo.in");
    ofstream fout("sdo.out");
    fin>>N>>K;
    for(int i=1;i<=N;++i)fin>>a[i];
    quicksort(1,N);
    fout<<a[K]<<'\n';
 return 0;   
}