Cod sursa(job #3312010)

Utilizator MateibalaselBalasel Matei Stefan Mateibalasel Data 25 septembrie 2025 13:18:47
Problema Statistici de ordine Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.05 kb
#include <iostream>

using namespace std;
void part3(int v[], int st, int dr, int &p1, int&p2){


         int i=st;
         p1=st;
         p2=dr;
         while(i<=p2){
            if(v[i]<v[dr]){
                swap(v[i++],v[p1++]);
            }
            else if(v[i]>v[dr]){
                swap(v[i],v[p2--]);

            }
            else{
                i++;
            }
         }
         swap(v[dr],v[++p2]);

     }
      void quicksort(int v[], int st, int dr, int k){
             if(st>=dr){
                return;
             }
             int p1,p2;
             part3(v,st,dr,p1,p2);
             if(k<p1){
             quicksort(v,st,p1-1,k);
             }
             if(k>p2){
             quicksort(v,p2+1,dr,k);
             }


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

      }
      quicksort(v,0,n-1,k);
      cout<<v[k]<<"\n";

       return 0;
}