Cod sursa(job #3211784)

Utilizator AlexandraVarutuValexandra AlexandraVarutu Data 10 martie 2024 12:46:22
Problema Statistici de ordine Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("sdo.in");
ofstream fout("sdo.out");
int n,k,a[3000001];
int pivot(int st,int dr){
    int dst=0,ddr=1;
    swap(a[st],a[(st+dr)/2]);
    while(st<dr){
        if(a[st]>a[dr]){
            swap(a[st],a[dr]);
            swap(dst,ddr);
        }
        st=st+dst;
        dr=dr-ddr;
    }
    return st;
}
void quicksort(int st,int dr){
    if(st<=dr){
        int p=pivot(st,dr);
        if(p==k)
               fout<<a[k];
        else
            if(k>p)
               quicksort(p+1,dr);
       else
             quicksort(st,p-1);
    }
}
int main()
{
    fin>>n>>k;
    for(int i=1;i<=n;i++)
        fin>>a[i];
    quicksort(1,n);

    return 0;
}