Cod sursa(job #3227892)

Utilizator PescarusTanislav Luca Andrei Pescarus Data 3 mai 2024 16:15:47
Problema Statistici de ordine Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>
using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
const int nmax = 3000005;
int a[nmax];
int n, k;
int pivot(int st, int dr){
    int i = st;
    int j = dr;
    int di = 0;
    int dj = -1;
    while(i < j){
        if(a[i] > a[j]){
            int aux = a[i];
            a[i] = a[j];
            a[j] = aux;
            aux = di;
            di = -dj;
            dj = -aux;
        }
        i += di;
        j += dj;
    }
    return i;
}
void sortare(int st, int dr){
    if(st < dr){
        int p = pivot(st, dr);
        sortare(st, p - 1);
        sortare(p + 1, dr);
    }
    
}
int main(){
    f >> n >> k;
    for(int i = 1; i <= n; i++){
        f >> a[i];
    }
    sortare(1, n);
    // for(int i = 1; i <= n; i++){
    //     g << a[i] << ' ';
    // }
    // g << '\n';
    g << a[k];
}