Cod sursa(job #1783300)

Utilizator crazylamaRiclea Andrei crazylama Data 18 octombrie 2016 22:07:54
Problema Statistici de ordine Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <cstdio>
#include <cstdlib>

using namespace std;

FILE *f = fopen("sdo.in", "r");
FILE *g = fopen("sdo.out", "w");

int n, k;

void QuickSort(int *v, int st, int dr)
{
    if (st < dr)
    {
        int i = st, j = dr, x = v[st];
        while (i < j)
        {
            while (i < j && v[j] >= x)
                j--;
            v[i] = v[j];
            while (i < j && v[i] <= x)
                i++;
            v[j] = v[i];
        }
        v[i] = x;
        if (i <= k && k <= dr)
            QuickSort(v, i + 1, dr);
        if (j >= k && k >= st)
            QuickSort(v, st, j - 1);
    }
}

int main()
{
    int i;
    fscanf(f, "%d %d", &n, &k);
    int *v = (int*)calloc(n + 2, sizeof(int));
    for (i = 1; i <= n; i++)
        fscanf(f, "%d", &v[i]);
    QuickSort(v, 1, n);
    fprintf(g, "%d", v[k]);
    return 0;
}