Cod sursa(job #3173774)

Utilizator andreifilimonPopescu Filimon Andrei Cosmin andreifilimon Data 23 noiembrie 2023 18:07:13
Problema Statistici de ordine Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>

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

#define MAXN 3000000

int v[MAXN+1];

void qsort(int v[], int pozb, int poze)
{
    int pivot, st, dr;
    pivot=v[pozb+rand()%(poze-pozb+1)];
    st=pozb;
    dr=poze;

    while(v[st]<pivot)
        st++;

    while(v[dr]>pivot)
        dr--;

    while(st<dr)
    {
        swap(v[st], v[dr]);

        do
        {
            st++;
        }
        while(v[st]<pivot);

        do
        {
            dr--;
        }
        while(v[dr]>pivot);
    }

    if(pozb<dr)
        qsort(v, pozb, dr);

    if(dr+1<poze)
        qsort(v, dr+1, poze);
}

int main()
{
    int n, k;
    cin>>n>>k;
    int i;
    for(i=0; i<n; i++)
        cin>>v[i];
    qsort(v, 0, n-1);
    cout<<v[k-1]<<" ";
    return 0;
}