Cod sursa(job #1019324)

Utilizator CostinVFMI CostinVictorGabriel CostinV Data 30 octombrie 2013 22:15:40
Problema Statistici de ordine Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include<iostream>
#include<fstream>
#include<stdlib.h>

using namespace std;

int k;

void sor(int* a, int p, int q)
{
    int i = p;
    int j = q;
    int aux;
    int piv = a[p+rand()%(q-p+1)];

    while(i<=j)
    {
        while(a[i]<piv)
            i++;
        while(a[j]>piv)
            j--;

        if(i<=j)
        {
            aux=a[i];
            a[i++]=a[j];
            a[j--]=aux;
        }
    }

    if(k<=j)
        sor(a, p, j);
    else if(k>=i)
        sor(a, i, q);
}

int main()
{
    int *a, n, i;

    fstream f("sdo.in");
    f>>n; f>>k;
    a = new int [n+1];

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

    sor(a, 1, n);

    ofstream g("sdo.out");
    g<<a[k];

    f.close();
    g.close();
    return 0;
}