Cod sursa(job #1019312)

Utilizator CostinVFMI CostinVictorGabriel CostinV Data 30 octombrie 2013 22:03:58
Problema Statistici de ordine Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include<iostream>
#include<fstream>
#include<stdlib.h>
#include<time.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-1<=j)
        sor(a, p, j);
    else if(k-1>=i)
        sor(a, i, q);
}

int main()
{
    srand(time(NULL));
    int *a, n, i;

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

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

    sor(a, 0, n-1);

    ofstream g("sdo.in");
    g<<a[k-1];

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