Cod sursa(job #1018172)

Utilizator ionut.picpopa ionut cristian ionut.pic Data 28 octombrie 2013 22:48:08
Problema Statistici de ordine Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <stdio.h>
#include <stdlib.h>
using namespace std;
long x[3000000],n,k;
void quick(int p,int u)
{
    long pv,i,j,aux;
    i=p;
    j=u;
    pv=x[(i+j)/2];
    while(i<=j)
    {
        while(x[i]<pv)
            i++;
        while(pv<x[j])
            j--;
        if(i<=j)
        {
            aux=x[i];
            x[i]=x[j];
            x[j]=aux;
            i++;
            j--;
        }
    }
    if(p<j)
        quick(p,j);
    if(i<u)
        quick(i,u);
}
int main()
{
    freopen("sdo.in","r",stdin);
    freopen("sdo.out","w",stdout);
    scanf("%ld", &n);
    scanf("%ld", &k);
    long i;
    for(i=1;i<=n;i++)
        scanf("%ld", &x[i]);
    quick(1,n);
    printf("%ld", x[k]);
    return 0;
}