Cod sursa(job #480433)

Utilizator cont_de_testeCont Teste cont_de_teste Data 27 august 2010 18:30:07
Problema Sortare prin comparare Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 1.4 kb
type vec = array[0..500000] of longint ;
var A : vec ;
    i, N : longint ;
    f : text ;
    Bufin : array[1..1 shl 17]of boolean;

    procedure quicksort ( var vector : vec ; st : longint ; dr : longint ) ;
        var temp, min, max, mij : longint ;

        begin
            mij := vector[st + (dr - st) div 2] ;
            min := st ; max := dr ;
            repeat
                while ( vector[min] < mij ) do
                    inc ( min ) ;
                while ( vector[max] > mij ) do
                    dec ( max ) ;
                if ( min <= max ) then
                    begin
                        temp := vector[min] ;
                        vector[min] := vector[max] ; inc ( min ) ;
                        vector[max] := temp ; dec ( max ) ;
                    end;
            until min > max ;

            if ( st < max ) then
                quicksort ( vector, st, max ) ;
            if ( dr > min ) then
                quicksort ( vector, min, dr ) ;
        end ;

   begin
     assign ( f, 'algsort.in' ) ; reset ( f ) ;
     SetTextBuf ( f, Bufin ) ;
     readln ( f, N ) ;
     for i := 1 to N do
         read ( f, A[i] ) ;
     close ( f ) ;
     quicksort ( A, 1, N ) ;
     assign ( f, 'algsort.out' ) ; rewrite ( f ) ;
     SetTextBuf ( f, Bufin ) ;
     for i := 1 to N do
         write ( f, A[i], ' ' ) ;
     close ( f ) ;
   end .