Cod sursa(job #1021015)

Utilizator andreeaghetuUNIBUC andreeaghetu andreeaghetu Data 2 noiembrie 2013 23:29:01
Problema Statistici de ordine Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("sdo.in");
ofstream out ("sdo.out");
int N, v[3000005], k;

void swap (int &a, int &b)
{
    int aux=a;
    a=b;
    b=aux;
}

void sort(int a, int b)
{
    if (a>b)
        return;
    int poz_piv=(a+b)/2;
    int pivot=v[poz_piv];

    int begin=a, end=b;
    while (begin<=end)
    {
        while (v[begin]<pivot)
            ++begin;
        while (v[end]>pivot)
            --end;
        if (begin<=end)
        {
            swap (v[begin], v[end]);
            ++begin;
            --end;
        }

    }
    if (k>end)
        sort(begin, b);
    else
        sort(a, end);


}

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