program px( input, output) ;
type list= array [ 1 .. 6 ] of integer ;
var
d, e : list; ii, N : integer ;
procedure merge( var a, b, c, e : list;
fa, la, fb, lb, fc : integer ;
var lc : integer ) ; forward ;
procedure mergesort( var a, e : list;
fa, la : integer ) ;
var b : list; i, mid : integer ;
begin
if fa<la then
begin mid : = ( fa + la) div 2 ;
mergesort( a, e, fa, mid) ;
mergesort( a, e, mid+ 1 , la) ;
merge( a, a, b, e, fa, mid, mid+ 1 ,
la, fa, la) ;
for i : = fa to la do a[ i] : = b[ i]
end
end ;
procedure merge( var a, b, c, e, eh : list;
fa, la, fb, lb, fc : integer ;
var lc : integer ) ;
var ia, ib, ic, tt : integer ;
begin
if la>lb then for tt: = 1 to la do eh[ tt] : = tt
else for tt: = 1 to lb do eh[ tt] : = tt;
ia : = fa; ib : = fb; ic : = fc;
repeat
if a[ ia] <b[ ib] then
begin e[ ic] : = eh[ ia] ; c[ ic] : = a[ ia] ; ia: = ia+ 1 ; end
else
begin e[ ic] : = eh[ ib] ; c[ ic] : = b[ ib] ; ib: = ib+ 1 ; end ;
ic : = ic+ 1
until ( ia>la) or ( ib>lb) ;
for ia : = ia to la do
begin e[ ic] : = eh[ ia] ; c[ ic] : = a[ ia] ; ic: = ic+ 1 ; end ;
for ib : = ib to lb do
begin e[ ic] : = eh[ ib] ; c[ ic] : = b[ ib] ; ic: = ic+ 1 ; end ;
lc : = ic- 1
end ;
begin
readln ( N) ;
for ii: = 1 to N do read ( d[ ii] ) ; for ii: = 1 to N do e[ ii] : = ii;
mergesort( d, e, 1 , N) ;
for ii: = 1 to N do write ( e[ ii] ) ; writeln
end .
cHJvZ3JhbSBweChpbnB1dCxvdXRwdXQpOwp0eXBlIGxpc3Q9YXJyYXkgWzEuLjZdIG9mIGludGVnZXI7CnZhcgogZCxlIDogbGlzdDsgaWksTiA6IGludGVnZXI7Cgpwcm9jZWR1cmUgbWVyZ2UodmFyIGEsYixjLGUgOiBsaXN0OwpmYSxsYSxmYixsYixmYyA6IGludGVnZXI7CnZhciBsYyA6IGludGVnZXIpOyBmb3J3YXJkOwpwcm9jZWR1cmUgbWVyZ2Vzb3J0KHZhciBhLGUgOiBsaXN0OwpmYSwgbGEgOiBpbnRlZ2VyKTsKdmFyIGIgOiBsaXN0OyBpLCBtaWQgOiBpbnRlZ2VyOwpiZWdpbgppZiBmYTxsYSB0aGVuCmJlZ2luIG1pZCA6PSAoZmEgKyBsYSkgZGl2IDI7Cm1lcmdlc29ydChhLGUsIGZhLCBtaWQpOwptZXJnZXNvcnQoYSxlLCBtaWQrMSwgbGEpOwptZXJnZShhLCBhLCBiLGUsZmEsIG1pZCwgbWlkKzEsCmxhLCBmYSwgbGEpOwpmb3IgaSA6PSBmYSB0byBsYSBkbyBhW2ldOj1iW2ldCmVuZAplbmQ7Cgpwcm9jZWR1cmUgbWVyZ2UodmFyIGEsYixjLGUsZWggOiBsaXN0OwpmYSxsYSxmYixsYixmYyA6IGludGVnZXI7CnZhciBsYyA6IGludGVnZXIpOwp2YXIgaWEsIGliLCBpYyx0dCA6IGludGVnZXI7CmJlZ2luCmlmIGxhPmxiIHRoZW4gZm9yIHR0Oj0xIHRvIGxhIGRvIGVoW3R0XTo9dHQKZWxzZSBmb3IgdHQ6PTEgdG8gbGIgZG8gZWhbdHRdOj10dDsKaWEgOj0gZmE7IGliIDo9IGZiOyBpYyA6PSBmYzsKcmVwZWF0CmlmIGFbaWFdPGJbaWJdIHRoZW4KYmVnaW4gZVtpY106PWVoW2lhXTsgY1tpY106PWFbaWFdOyBpYTo9aWErMTsgZW5kCmVsc2UKYmVnaW4gZVtpY106PWVoW2liXTsgY1tpY106PWJbaWJdOyBpYjo9aWIrMTsgZW5kOwppYyA6PSBpYysxCnVudGlsIChpYT5sYSkgb3IgKGliPmxiKTsKZm9yIGlhIDo9IGlhIHRvIGxhIGRvCmJlZ2luIGVbaWNdOj1laFtpYV07IGNbaWNdOj1hW2lhXTsgaWM6PWljKzE7IGVuZDsKZm9yIGliIDo9IGliIHRvIGxiIGRvCmJlZ2luIGVbaWNdOj1laFtpYl07IGNbaWNdOj1iW2liXTsgaWM6PWljKzE7ICBlbmQ7CmxjIDo9IGljLTEKZW5kOwoKYmVnaW4KcmVhZGxuKE4pOwpmb3IgaWk6PTEgdG8gTiBkbyByZWFkKGRbaWldKTsgZm9yIGlpOj0xIHRvIE4gZG8gZVtpaV06PWlpOwptZXJnZXNvcnQoZCxlLDEsTik7CmZvciBpaTo9MSB0byBOIGRvIHdyaXRlKGVbaWldKTsgd3JpdGVsbgplbmQu
compilation info
Free Pascal Compiler version 2.2.0 [2009/11/16] for i386
Copyright (c) 1993-2007 by Florian Klaempfl
Target OS: Linux for i386
Compiling prog.pas
prog.pas(6,11) Error: Forward declaration not solved "merge(var list,var list,var list,var list, SmallInt, SmallInt, SmallInt, SmallInt, SmallInt,var SmallInt)"
prog.pas(50,4) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
Error: /usr/bin/ppc386 returned an error exitcode (normal if you did not specify a source file to be compiled)
stdout