Cod sursa(job #2618684)

Utilizator denisa.iordacheIordache Denisa-Elena denisa.iordache Data 25 mai 2020 19:04:30
Problema Statistici de ordine Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <iostream>
#include <fstream>
#include <random>
using namespace std;
int g[3000001],e[3000001],l[3000001],v[3000001];
int quickselect2(int v[],int k,int n)
{
    int pivot=v[rand()%n];
    int g1=0,e1=0,l1=0;
    for(int i=0;i<n;i++){
        if(v[i]<pivot)
        {
            l[l1]=v[i];
            l1++;
        }
        else
            if(v[i]==pivot)
            {
                e[e1]=v[i];
                e1++;
            }
            else
            {
                g[g1]=v[i];
                g1++;
            }
    }
    if(k<=l1)
        return quickselect2(l,k,l1);
    else
        if(k<=l1+e1)
            return e[0];
        else
            return quickselect2(g,k-l1-e1,g1);
}

int main()
{
    ifstream f("sdo.in");
    ofstream g("sdo.out");
    int n,k;
    f>>n>>k;
    for(int i=0;i<n;i++)
    {
        f>>v[i];



    }
    g<<quickselect2(v,k,n);

}