Cod sursa(job #3200970)

Utilizator DARIUSQSDarius Nicoara DARIUSQS Data 6 februarie 2024 12:40:04
Problema Statistici de ordine Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include<bits/stdc++.h>

using namespace std;

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

int sel;

int partition(int a[],int s,int e)
{
    int pivot = a[e];

    int i = s - 1;
    for(int j=s;j<e;j++)
    {
        if(a[j] < pivot)
        {
            i++;
            swap(a[i],a[j]);
        }
    }
    swap(a[i+1],a[e]);
    return i + 1;
}

int quicksortt(int a[], int s,int e){

if(s==e){
return s;
}

int p = partition(a,s,e);
if(p == sel) return a[p];
else if(p > sel) quicksortt(a,s,p-1);
else quicksortt(a,p+1,e);

}

int main(){

    int nums[4001];
    int n;
    cin >> n >> sel;
    for(int i = 1;  i <= n; i++) 
    {
        cin >> nums[i];
    }
    int pos = 0;
    cout << quicksortt(nums, pos, n);
}