Cod sursa(job #1615047)

Utilizator cr7.stefyNedelcu Stefan-Marian cr7.stefy Data 26 februarie 2016 13:18:08
Problema Statistici de ordine Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>


using namespace std;
ifstream in("sdo.in.in");
ofstream out("sdo.out");

unsigned int v[4000001];
int k;
void pivotare(unsigned int v[],int st,int dr,int &p, int &u)
{
    int i;
    p=st; u=dr-1; i=st;
    while(i<=u){
        if(v[i]<v[dr])
            swap(v[i++],v[p++]);
        else
            if(v[i]>v[dr])
                swap(v[i],v[u--]);
            else
                i++;
    }
    swap(v[dr],v[++u]);
}
void qsort(unsigned int v[],int st,int dr)
{
    if(st>=dr)
        return;
    int p,u;
    pivotare(v,st,dr,p,u);
    if(k<p)
        qsort(v,st,p-1);
    if(k>u)
        qsort(v,u+1,dr);
}

int main()
{
    int n,i;
    in>>n>>k;
    for(i=1;i<=n;i++)
        in>>v[i];

    qsort(v,1,n);
    out<<v[k];
    return 0;
}