Cod sursa(job #2467125)

Utilizator LeVladzCiuperceanu Vlad LeVladz Data 3 octombrie 2019 19:02:56
Problema Statistici de ordine Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>
#include <stdlib.h>

using namespace std;

ifstream fin("sdo.in");
ofstream fout("sdo.out");

unsigned int n,k,i,v[3000005];

void sorteaza(int st, int dr)
{
    if (st < dr)
    {
        int i = 0; int j = -1;
        int stst = st; int drdr = dr;
        int x = st+rand()%(dr-st+1);
        swap(v[st], v[x]);
        while (stst != drdr)
        {
            if (v[stst] > v[drdr])
            {
                swap(v[stst], v[drdr]);
                int aux = i;
                i = -j;
                j = -aux;
            }
            stst += i;
            drdr += j;
        }
        int p = stst;
        sorteaza(st, p-1);
        sorteaza(p+1, dr);
    }
}

int main()
{
    fin >> n >> k;
    for (i=1; i<=n; i++)
        fin >> v[i];
    sorteaza(1, n);
    fout << v[k];
    return 0;
}