Cod sursa(job #1654708)

Utilizator LazarAndreiLazar Andrei Teodor LazarAndrei Data 17 martie 2016 13:09:45
Problema Statistici de ordine Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
#include <fstream>
using namespace std;

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

unsigned long n , k , a[3000009];

void read (unsigned long &n, unsigned long &k , unsigned long a[])
{
    f>>n;
    f>>k;

    for(unsigned long i = 1 ; i <= n ; ++ i)
        f>>a[i];
}

void quicksort (unsigned long left , unsigned long right)
{
    unsigned long i = left;
    unsigned long j = right;
    unsigned long aux;
    unsigned long pivot = a[(left+right)/2];

    while(i <= j)
    {
        while(a[i] < pivot)
            ++ i;
        while (a[j] > pivot)
            -- j;

        if(i <= j)
        {
            aux = a[i];
            a[i] = a[j];
            a[j] = aux;

            ++ i;
            -- j;
        }
    }

    if(left < j)
        quicksort (left , j);
    if(i < right)
        quicksort (i , right);
}
int main()
{
    read(n , k , a);
    quicksort (1 , n);
    g<<a[k];



    return 0;
}