Cod sursa(job #1046656)

Utilizator mads2194FMI - Andrei Stroe mads2194 Data 3 decembrie 2013 11:59:15
Problema Statistici de ordine Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <cstdio>
#include <cstdlib>
#include <ctime>

#define N 3000001

using namespace std;

int n,k;
int v[N];

void qs(int st,int dr)
{
    int p=v[ (st+dr)/2 ];
    int i=st;
    int j=dr;

    while(i<=j)
    {
        while(p > v[i]) ++i;
        while(p < v[j]) --j;

        if(i<=j)
        {
            int aux;
            aux=v[i];
            v[i]=v[j];
            v[j]=aux;
            ++i;
            --j;
        }
    }

    if(k>=i && i<dr) qs(i,dr);
    else if(k<=j && st<j) qs(st,j);

}

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

    scanf("%d %d\n",&n,&k);

    for(int i=1;i<=n;++i)
    {
        scanf("%d ",&v[i]);
    }

    qs(1,n);

    printf("%d",v[k]);

    return 0;
}