Cod sursa(job #964979)

Utilizator AlexandruValeanuAlexandru Valeanu AlexandruValeanu Data 22 iunie 2013 21:03:49
Problema Statistici de ordine Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
#include <cstring>
#include <cstdlib>
#include <ctime>

using namespace std;

int a[3000005], N, K;

void QSort( int l, int r )
{
    int i = l, j = r, p = a[ (i+j) / 2 ];

    do
    {
        while( a[i] < p )
            i++;

        while( a[j] > p )
            j--;

        if ( i <= j )
        {
            swap( a[i], a[j] );

            i++;
            j--;
        }

    }while( i < j );

    if ( l < j && j >= K )
        QSort( l, j );

    if ( i < r && i <= K )
        QSort( i, r );

}

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

    f >> N >> K;

    srand(time(NULL));

    for ( int i = 1; i <= N; i++ )
        f >> a[i];

    QSort(1, N);

    g << a[K];

    return 0;
}