Cod sursa(job #3211783)

Utilizator Dia3141Costea Diana Stefania Dia3141 Data 10 martie 2024 12:45:39
Problema Statistici de ordine Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
using namespace std;
ifstream cin("sdo.in");
ofstream cout("sdo.out");
int v[4000005];
int n,k;
int pivot(int st,int dr){
    int dst=0,ddr=1;
    swap(v[st],v[(st+dr)/2]);
    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 quicksort(int st,int dr){
    if(st<=dr){
        int p=pivot(st,dr),mid=(st+dr)/2;
        if(p==k){
            cout<<v[p];
            return ;
        }else if(k<p)
            quicksort(st,mid);
        else
            quicksort(mid+1,dr);
    }
}
int main()
{
    cin>>n>>k;
    for(int i=1;i<=n;i++)
        cin>>v[i];
    quicksort(1,n);
    return 0;
}