Cod sursa(job #3337456)

Utilizator kkcalinMarin Calin kkcalin Data 27 ianuarie 2026 20:08:45
Problema Statistici de ordine Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include <bits/stdc++.h>
using namespace std;

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

const int NMAX = 1e6;
int v[3*NMAX+5], w[3*NMAX+5];

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

void sortare (int st, int dr)
{
    if (st < dr)
    {
        int mij = st + (dr - st)/2;
        
        sortare (st, mij);
        sortare (mij + 1, dr);
        
        interclasare (st, dr, mij);
    }
}

int main ()
{
    int n, k;
    in >> n >> k;
    
    for (int i = 1; i <= n; i++)
        in >> v[i];
    
    sortare (1, n);
    out << v[k];
    
    return 0;
}