Cod sursa(job #2674578)

Utilizator Antonia_onisoruantonia onisoru Antonia_onisoru Data 19 noiembrie 2020 17:33:27
Problema Statistici de ordine Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <fstream>


using namespace std;

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

const int MAXN =  3000000;

int v[MAXN];

void quicksort( int k, int inf, int sup ){
    int i, j, x, t;
    i = inf;
    j = sup;
    x = v[ ( i + j ) / 2 ];
    while( i <= j ){
      while( ( i < sup ) && ( v[i] < x ) )i++;
      while( ( j > inf ) && ( v[j] > x ) )j--;
      if( i <= j ){
        t = v[i];
        v[i] = v[j];
        v[j] = t;
        i++;
        j--;
      }
    }
    if( j > inf && k < j ) quicksort( k, inf, j );
    else if( i < sup ) quicksort( k, i, sup );
}


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