Cod sursa(job #2952091)

Utilizator AswVwsACamburu Luca AswVwsA Data 8 decembrie 2022 11:19:12
Problema Statistici de ordine Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
using namespace std;
int v[4000003];

int change(int st, int dr, int k)
{
    int pivot = v[(st + dr) / 2];
    int i;
    int l = st - 1;
    for (i = st; i <= dr; i++)
        if (v[i] <= pivot)
        {
            l++;
            swap(v[l], v[i]);
        }
    if (k == l)
        return v[l];
    if (k < l)
        return change(st, l - 1, k);
    if (k > l)
        return change(l + 1, dr, k);
}

int main()
{
    ifstream cin("sdo.in");
    ofstream cout("sdo.out");
    int n, i, k;
    cin >> n >> k;
    for (i = 1; i <= n; i++)
        cin >> v[i];
    cout << change(1, n, k);
}