Cod sursa(job #3336125)

Utilizator Lascu_NicoleLascu Nicole Iraida Lascu_Nicole Data 24 ianuarie 2026 11:52:12
Problema Statistici de ordine Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.03 kb
#include <bits/stdc++.h>

using namespace std;

int v[3000001], a[3000001];

int piv (int st, int dr)
{
    int di = 0;
    int dj = -1;
    int i = st;
    int j = dr;
    
    while (i < j)
    {
        if (v[i] > v[j]){
            int aux = v[i];
            v[i] = v[j];
            v[j] = aux;
            
            aux = di;
            di = -dj;
            dj = -aux;
        }
        
        i += di;
        j += dj;
    }
    
    return i; // pozitia pivotului unde in stanga lui toate elem sunt mai mici 
    //si in dreapta lui sunt mai mari
}

void sorty (int st, int dr)
{
     if (st < dr) 
       {
          int poz = piv (st, dr); // gasesc pozitia pe care a ajuns pivotul
          sorty (st, poz); 
          sorty (poz + 1, dr);
    // sortez in stanga si in dreapta lui
      }
}

int main()
{
    ifstream cin ("sdo.in");
    ofstream cout ("sdo.out");
    
   int n, k;
   
    cin >> n >> k;
    for (int i = 0; i < n; i++)
      cin >> v[i];
    
    sorty (0, n - 1);
  
    cout << v[k - 1];
   
  
    return 0;
}