Cod sursa(job #1287944)

Utilizator Vally77FMI Calinescu Valentin Gelu Vally77 Data 8 decembrie 2014 11:32:59
Problema Statistici de ordine Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
ifstream ka("sdo.in");
ofstream ki("sdo.out");
const int N_MAX = 3000000;

int n, k, v[N_MAX + 1];

int quicksort(int inc, int sf)
{
    int f = inc;
    if(inc < sf)
    {
        int p = inc + rand()%(sf - inc + 1);
        swap(v[p], v[sf]);
        for(int i = inc; i < sf; i++)
            if(v[i] <= v[sf])
            {
                swap(v[i], v[f]);
                f++;
            }
        swap(v[f], v[sf]);
    }
    if(f == k)
        return v[f];
    else if(f < k)
        return quicksort(f + 1, sf);
    else
        return quicksort(inc, f - 1);
}

int main()
{
    ka >> n >> k;
    for(int i = 1; i <= n; i++)
        ka >> v[i];
    ki << quicksort(1, n);
}