Cod sursa(job #373325)

Utilizator DraStiKDragos Oprica DraStiK Data 13 decembrie 2009 16:01:20
Problema Statistici de ordine Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <algorithm>
using namespace std;

#define DIM 3000005

int a[DIM];
int n,k;

void read ()
{
    int i;

    scanf ("%d%d",&n,&k);
    for (i=1; i<=n; ++i)
        scanf ("%d",&a[i]);
}

void qsort (int st,int dr)
{
    int i=st,j=dr,piv=a[(st+dr)/2];

    do
    {
        while (a[i]<piv)
            ++i;
        while (a[j]>piv)
            --j;
        if (i<=j)
            swap (a[i++],a[j--]);
    }
    while (i<=j);
    if (st<=k && k<=j)
        qsort (st,j);
    else if (i<=k && k<=dr)
        qsort (i,dr);
}

int main ()
{
    freopen ("sdo.in","r",stdin);
    freopen ("sdo.out","w",stdout);

    read ();
    qsort (1,n);
    printf ("%d",a[k]);

    return 0;
}