Cod sursa(job #1688869)

Utilizator RazvanVasRazvan RazvanVas Data 13 aprilie 2016 19:34:36
Problema Statistici de ordine Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
#include <iostream>
#include <fstream>

using namespace std;

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

void swap(int i,int j, int *a){
    int temp = a[i];
    a[i] = a[j];
    a[j] = temp;
}


void quicksort(int *arr, int left, int right){
    int min = (left+right)/2;

    int i = left;
    int j = right;
    int pivot = arr[min];

    while(left<j || i<right)
    {
        while(arr[i]<pivot)
        i++;
        while(arr[j]>pivot)
        j--;

        if(i<=j){
            swap(i,j,arr);
            i++;
            j--;
        }
        else{
            if(left<j)
                quicksort(arr, left, j);
            if(i<right)
                quicksort(arr,i,right);
            return;
        }
    }
}

int main()
{
    int n, a;  f >> n >> a;
    int b[n];
    for(int i = 0; i < n; i++){
        f >> b[i];
    }

    f.close();

    quicksort(b, 0, n);

    g << b[a-1];
    g.close();
    return 0;
}