Cod sursa(job #777104)

Utilizator oana_popfmi - pop oana oana_pop Data 11 august 2012 00:18:01
Problema Statistici de ordine Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <fstream>

using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");

int a[500002],n,k,i;
void quicksort(int a[] , int left , int right,int k)
{
     int i=left,j=right,tmp;
     int pivot=a[(left+right)/2];
     while(i<=j)
     {
        while(a[i]<pivot) i++;
        while(a[j]>pivot) j--;
        if (i<=j)        
            {
                              tmp=a[i];
                              a[i]=a[j];
                              a[j]=tmp;
                              i++;
                              j--;
            }
     }
     
     if (left<j) 
     { if(j-left+1>=k)
                 quicksort(a,left,j,k);
                 }
     if (i<right) 
     {if (j-left+1<k) quicksort(a,i,right,k-(j-left+1));}
}

int main()
{
     f>>n>>k;
     for(i=1; i<=n ;i++) f>>a[i];
     quicksort(a,1,n,k);
     g<<a[k]<<" ";
}