Cod sursa(job #3226159)

Utilizator Dia3141Costea Diana Stefania Dia3141 Data 20 aprilie 2024 12:22:58
Problema Statistici de ordine Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <fstream>
using namespace std;
ifstream cin("sdo.in");
ofstream cout("sdo.out");
int n,k,v[3000003];
int pivot(int st,int dr){
    swap(v[st],v[(st+dr)/2]);
    int dst=0,ddr=1;
    while(st<dr){
        if(v[st]>v[dr]){
            swap(v[st],v[dr]);
            dst=1-dst;
            ddr=1-ddr;
        }
        st+=dst,dr-=ddr;
    }
    return st;
}
void quick_sort(int st,int dr){
    int p=pivot(st,dr);
    if(p==k){
        cout<<v[p];
        return ;
    }else if(k<p)
        quick_sort(st,p-1);
    else
        quick_sort(p+1,dr);
}
int main()
{
    cin>>n>>k;
    for(int i=1;i<=n;i++)
        cin>>v[i];
    quick_sort(1,n);
    return 0;
}