Cod sursa(job #3324724)

Utilizator nicholas9onicaMike Krack nicholas9onica Data 23 noiembrie 2025 11:53:41
Problema Statistici de ordine Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <vector>

using namespace std;

int nr[1001];
int n, k;

int pivotare(int st, int dr)
{
    int i = st;
    int pivot = nr[dr];
    for(int j = st; j < dr; j++)
    {
        if(nr[j] <= pivot)
        {
            swap(nr[j], nr[i]);
            i++;
        }
    }
    swap(nr[dr], nr[i]);
    return i;
}

int QS(int st, int dr)
{
    if(st<dr)
    {
        int indice = pivotare(st, dr);
        if(k == indice)
            return nr[k];
        if(k < indice)
        {
            QS(st, indice-1);
        }
        else
            QS(indice+1, dr);
    }
}

int main()
{
    cin >> n >> k;
    for(int i = 1; i <= n; i++)
    {
        cin >> nr[i];
    }
    cout << QS(1, n);
    return 0;
}