Cod sursa(job #2276296)

Utilizator tetrismeila ana gabriela tetris Data 4 noiembrie 2018 15:50:08
Problema Statistici de ordine Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <fstream>
#include <set>
using namespace std;
ifstream f("sdo.in") ;
ofstream g("sdo.out") ;
long long n , nr , x , a[3000003] ;
void poz ( long long st, long long dr )
{
    long long i = st , j = dr , pivot = a[(i+j)/2] ;
    do{
        while( (i < dr) && (a[i] < pivot) )
            i ++ ;
        while( (j > st) &&( a[j] > pivot) )
            j -- ;
        if( i <= j ){
            swap( a[i] , a[j] ) ;
        i ++ ;
        j -- ;
        }
if( ( i + j ) / 2 == nr )
{
    g << a[nr] ;
    i = dr ;
    j = st ;
    n = 0 ;
    break ;
}
    }while( i <= j ) ;

if( st < j && st <=nr)
    poz( st , j ) ;
if( i < dr && i<=nr )
    poz( i , dr ) ;
    }
int main()
{ long long i ;
    f >> n >> nr ;
    for( i = 1 ; i <= n ; i ++ )
        f >> a[i] ;
poz( 1 , n ) ;
if( n )
g << a[nr] ;
}