Cod sursa(job #2076585)

Utilizator Andrei243Nitu Mandel Andrei Andrei243 Data 26 noiembrie 2017 20:02:25
Problema Statistici de ordine Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <fstream>
using namespace std;

int v[3000000];
ifstream in("sdo.in");
ofstream out("sdo.out");
int partition ( int st, int dr)
{    int aux;
    int pivot = v[dr];
    int i = (st - 1);

    for (int j = st; j <= dr- 1; j++)
    {

        if (v[j] <= pivot)
        {
            i++;
            aux=v[i];
            v[i]=v[j];
            v[j]=aux;


        }
    }
    aux=v[i+1];
    v[i+1]=v[dr];
    v[dr]=aux;


    return (i + 1);
}


int quickSort( int st, int dr,int k)
{
    if (st < dr)
    {

        int pi = partition( st, dr);


        if(pi>k)return quickSort( st, pi - 1,k);
        if(pi<k) return quickSort( pi + 1, dr,k-pi);
        else if (pi==k)return v[pi];
    }
}





int main()
{
    int n,k;
    in>>n>>k;
    for(int i=1; i<=n; i++)in>>v[i];
    out<<quickSort(1,n,k);
    return 0;
}