// $Id: heapsort.elastic,v 1.0 2002/05/17 09:57:00 dada Exp $
package heapsort;

import basic;
import sys;
import array;

local IM = 139968;
local IA = 3877;
local IC = 29573;

private function gen_random( n )
{
    static LAST = 42.0;
    LAST = (LAST * IA + IC) % IM;
    return(n * LAST / IM);
}

private function heapsort( n, ra )
{
    local rra;
    local i;
    local j;
    
    local l = (n / 2) + 1;
    local ir = n;
    
    while (1) {
        if (l > 1) {
            rra = ra[--l];
        } else {
            rra = ra[ir];
            ra[ir] = ra[1];
            if (--ir == 1) {
                ra[1] = rra;
                return;
            }
        }
        i = l;
        j = l * 2;
        while (j <= ir) {
            if ( (j < ir) && (ra[j] < ra[j+1]) ) {
                j++;
            }
            if (rra < ra[j]) {
                ra[i] = ra[j];
                i = j;
                j = j + i;
            } else {
                j = ir + 1;
            }
        }
        ra[i] = rra;
    }
}

private n = 1;
private i;
private result = 0;
private ary = #[];
if(array.length(sys.args) > 0) {
    n = basic.int(sys.args[0]);
} else {
    n = 1;
}
for(i=1; i<=n; i++) {
    ary[i] = gen_random(1.0);
}
heapsort(n, ary);

basic.print(ary[-1]);