Cod sursa(job #1046607)

Utilizator mads2194FMI - Andrei Stroe mads2194 Data 3 decembrie 2013 10:55:56
Problema Statistici de ordine Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <cstdio>
#include <cstdlib>
#include <ctime>

#define N 3000000

using namespace std;

int n,k;
int v[N];

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

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

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

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

}

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

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

    for(int i=0;i<n;++i)
    {
        scanf("%d",&v[i]);
    }
    --k;
    qs(1,n-1);
/*
    for(int i=0;i<n;++i)
    {
        printf("%d ",v[i]);
    }*/

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

    return 0;
}