Cod sursa(job #1821445)

Utilizator tgm000Tudor Mocioi tgm000 Data 3 decembrie 2016 08:49:50
Problema Statistici de ordine Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<cstdio>
int v[3000001];
void swap(int &a,int &b){
   int aux=a;
   a=b;
   b=aux;
}
int pivot(int st,int dr){
   int p,i,j;
   p=v[dr];
   j=st-1;
   for(i=st;i<=dr;i++){
      if(v[i]<=p){
         j++;
         swap(v[i],v[j]);
      }
   }
   return j;
}
void quicksort(int st,int dr,int k){
   if(st==dr)
      return;
   int poz=pivot(st,dr);
   if(k<poz)
      quicksort(st,poz-1,k);
   else if(k>poz)
      quicksort(poz+1,dr,k);
}
int main(){
   int n,k,i;
   freopen("sdo.in","r",stdin);
   freopen("sdo.out","w",stdout);
   scanf("%d%d",&n,&k);
   for(i=1;i<=n;i++)
      scanf("%d",&v[i]);
   quicksort(1,n,k);
   printf("%d",v[k]);
   return 0;
}