Cod sursa(job #3274685)

Utilizator _cezara._14cezara dobrescu _cezara._14 Data 8 februarie 2025 10:00:54
Problema Statistici de ordine Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
int v[1001];
int get_pivot(int left, int right){
    int pivot=right;
    int i=left;
    for(int j=left; j<right; j++)
    if(v[j]<=v[pivot]){
        swap(v[i], v[j]);
        i++;
    }
    swap(v[pivot], v[i]);
    pivot=i;

    return pivot;
}

int quick_sort(int left, int right, int k)
{
    if(left==right)
        return v[left];
    int pivot=get_pivot(left, right);
    int index=pivot-left+1;
    if(index==k)
        return v[pivot];
    if(index<k)
        quick_sort(index+1, right, k-index+1);
    else quick_sort(left, index-1, k);

}
int main()
{
    int k, n, left=1;
    fin>>n>>k;
    int right=n;
    for(int i=1; i<=n; i++){
        fin>>v[i];
    }
    fout<<quick_sort(left, right, k);

    return 0;
}