Cod sursa(job #2059205)

Utilizator daniela12Sandu Daniela Teodora daniela12 Data 6 noiembrie 2017 19:29:39
Problema Statistici de ordine Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
int v[500400], n,k;
void citire()
{
    int i;
    f>>n>>k;
    for(i=1;i<=n;++i)
        f>>v[i];
    f.close();
}
void afisare()
{
    int i;
    for(i=1;i<=n;++i)
        g<<v[i]<<" ";
    g<<endl;
    g.close();
}
int hoare(int v[], int p, int r)
{
    int pivot = v[(p+r)/2];
    int i = p - 1, j = r + 1;
    while (true)
    {
        do
        {
            i++;
        } while (v[i] < pivot);
        do
        {
            j--;
        } while (v[j] > pivot);
        if (i >= j)
            return j;

        swap(v[i], v[j]);
    }
}

void quickSort(int v[], int p, int r)
{
    if (p < r)
    {
        int q = hoare(v, p, r);
        if(k<q)
            quickSort(v, p, q);
        if(k>q)
            quickSort(v, q + 1, r);
        if(k==q)
            return;
    }
}
int main()
{
    citire();
    quickSort(v,1, n);
    g<<v[k];
}