Cod sursa(job #2294000)

Utilizator miruna1224Floroiu Miruna miruna1224 Data 1 decembrie 2018 19:43:47
Problema Statistici de ordine Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <time.h>

using namespace std;


int sortare_p ( int *v, int st, int dr)
{
    int p = v[(st + dr) / 2];

    while ( 1 )
    {
        while ( v[st] < p )
            st++;
        while ( v[dr] > p )
            dr--;
        if ( st < dr )
            swap (v[st],v[dr]);
        else return dr;
    }

}

int sortare ( int *v, int st, int dr, int poz)
{
    if( st == dr)
        return v[st];

    int s = sortare_p ( v, st, dr), x;

    x = s - st + 1;

    if ( x >= poz)
        return sortare(v, st, s , poz);
    return sortare(v, s+1 , dr, poz-x);
}

int main()
{
    ifstream in ( "sdo.in");
    ofstream out ("sdo.out");

    int n, i, k, *v, val;

    in >> n >> k;
    v = new int [n+1];
    for ( i =0 ; i< n ; i++)
        in >> v[i];

    val = sortare (v, 0, n-1, k);

    out << val;

    in.close();
    out.close();

    return 0;
}