Cod sursa(job #3336133)

Utilizator piaaaaaaaioana praj piaaaaaaa Data 24 ianuarie 2026 12:05:55
Problema Statistici de ordine Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.03 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fin("sdo.in");
ofstream fout("sdo.out");

void intcl(int v[3000000], int w[3000000], int st, int mid, int dr) {
    int i = st, j = mid + 1, k = st;
    
    while (i <= mid && j <= dr) {
        if (v[i] < v[j])
            w[k++] = v[i++];
            
        else  w[k++] = v[j++];
    }
    
    while (i <= mid)
        w[k++] = v[i++];
        
    while (j <= dr)
        w[k++] = v[j++];
        
    for (i = st; i <= dr; ++i)
        v[i] = w[i];
}

void sortare(int v[3000000], int w[3000000], int st, int dr) {
    int mid;
    
    if (st < dr) {
        mid = st + (dr - st) / 2;
        
        sortare(v, w, st, mid);
        sortare(v, w, mid + 1, dr);
        
        intcl(v, w, st, mid, dr);
    }
}

int main() {
    int n, v[3000001], w[3000001] = {0}, k;
    
    fin >> n >> k;
    
    for (int i = 0; i < n; i++)
        fin >> v[i];
        
    sortare(v, w, 0, n - 1);
    
    fout << v[k - 1];
    
    return 0;
}