Repository URL to install this package:
|
Version:
2.5.0 ▾
|
]q (cpygments.token
_TokenType
qX KeywordqX Reservedqq
qq}q(X subtypesqcbuiltins
set
q ]q
qRqX parentq
hh
q
qq}q(hh ]q(hhX Wordqq
qq}q(hh ]q
qRqh
hubhhhq
qq}q(hh ]q
q Rq!h
hubhhX Typeq"q#
q$q%}q&(hh ]q'
q(Rq)h
hubhhX PreProcq*q+
q,q-}q.(hh ]q/
q0Rq1h
hubhhX Controlq2q3
q4q5}q6(hh ]q7
q8Rq9h
hubhhX Constantq:q;
q<q=}q>(hh ]q?
q@RqAh
hubhhX NamespaceqBqC
qDqE}qF(hh ]qG
qHRqIh
hubhhX PseudoqJqK
qLqM}qN(hh ]qO
qPRqQh
hubhhX DeclarationqRqS
qTqU}qV(hh ]qW
qXRqYh
hubhe
qZRq[h
h)
q\q]}q^(hh ]q_(hX Escapeq`
qa
qbqc}qd(hh ]qe
qfRqgh
h]ubhX Operatorqh
qi
qjqk}ql(hh ]qm(hhhX DBSqnqo
qpqq}qr(hh ]qs
qtRquh
hkubhhhhqv
qwqx}qy(hh ]qz
q{Rq|h
hkube
q}Rq~h
h]hhxhnhqubhX Nameq
q
qq}q(hh ]q(hhX Tagq
q
qq}q(hh ]q
qRqh
hubhhX Entityqq
qq}q(hh ]qhhhhnq
qq}q(hh ]q
qRqh
huba
qRqh
hhnhubhhX Exceptionqq
qq}q (hh ]q¡
q¢Rq£h
hubhhX Decoratorq¤q¥
q¦q§}q¨(hh ]q©
qªRq«h
hubhhX Classq¬q
q®q¯}q°(hh ]q±(hhh¬hnq²
q³q´}qµ(hh ]q¶
q·Rq¸h
h¯ubhhh¬X Startq¹qº
q»q¼}q½(hh ]q¾
q¿RqÀh
h¯ube
qÁRqÂh
hh¹h¼hnh´ubhhX VariableqÆqąqŁqÆ}qÇ(hh ]qÈ(hhhÃX AnonymousqɇqʅqˁqÌ}qÍ(hh ]q΅qÏRqÐh
hÆubhhhÃh¬qхqҁqÓ}qÔ(hh ]qՅqÖRq×h
hÆubhhhÃX Magicq؇qمqځqÛ}qÜ(hh ]q݅qÞRqßh
hÆubhhhÃX Globalqàqá
qâqã}qä(hh ]qå
qæRqçh
hÆubhhhÃX Instanceqèqé
qêqë}qì(hh ]qí
qîRqïh
hÆube
qðRqñh
hh¬hÓhàhãhèhëhØhÛhÉhÌubhhX Attributeqòqó
qôqõ}qö(hh ]q÷hhhòhÇqø
qùqú}qû(hh ]qü
qýRqþh
hõuba
qÿRr h
hhÃhúubhhhBr
r r }r (hh ]r
r Rr h
hubhhX Propertyr r
r
r }r (hh ]r
r Rr h
hubhhX Symbolr r
r r }r (hh ]r
r Rr h
hubhhX Classesr r
r r }r (hh ]r
r Rr h
hubhhhJr
r! r" }r# (hh ]r$
r% Rr& h
hubhhX Labelr' r(
r) r* }r+ (hh ]r,
r- Rr. h
hubhhhhr/
r0 r1 }r2 (hh ]r3
r4 Rr5 h
hubhhX Builtinr6 r7
r8 r9 }r: (hh ]r; (hhj6 hJr<
r= r> }r? (hh ]r@
rA RrB h
j9 ubhhj6 h"rC
rD rE }rF (hh ]rG
rH RrI h
j9 ube
rJ RrK h
hhJj> h"jE ubhhX FieldrL rM
rN rO }rP (hh ]rQ
rR RrS h
hubhhX OtherrT rU
rV rW }rX (hh ]rY hhjT X MemberrZ r[
r\ r] }r^ (hh ]r_
r` Rra h
jW uba
rb Rrc h
hjZ j] ubhhX Functionrd re
rf rg }rh (hh ]ri hhjd h؇rj
rk rl }rm (hh ]rn
ro Rrp h
jg uba
rq Rrr h
hhØjl ubhhh"rs
rt ru }rv (hh ]rw
rx Rry h
hubhhh:rz
r{ r| }r} (hh ]r~
r Rr h
hube
r Rr h
h]hòhõj6 j9 h¬h¯h:j| h¤h§hhhhjd jg j j j' j* hBj jT jW h
hhÃhÆjL jO j j hJj" hhj1 j j h"ju ubhX Literalr
r
r
r }r (hh ]r (hj jT r
r r }r (hh ]r
r Rr h
j ubhj X Charr r
r r }r (hh ]r
r Rr h
j ubhj X Dater r
r r }r (hh ]r
r Rr h
j ubhj X Scalarr r¡
r¢ r£ }r¤ (hh ]r¥ hj j X Plainr¦ r§
r¨ r© }rª (hh ]r«
r¬ Rr h
j£ uba
r® Rr¯ h
j j¦ j© ubhj X Stringr° r±
r² r³ }r´ (hh ]rµ (hj j° X Interpolr¶ r·
r¸ r¹ }rº (hh ]r»
r¼ Rr½ h
j³ ubhj j° X Delimeterr¾ r¿
rÀ rÁ }r (hh ]rÃ
rÄ RrÅ h
j³ ubhj j° j rÆ
rÇ rÈ }rÉ (hh ]rÊ
rË RrÌ h
j³ ubhj j° j rÍ
rÎ rÏ }rÐ (hh ]rÑ
rÒ RrÓ h
j³ ubhj j° X SinglerÔ rÕ
rÖ r× }rØ (hh ]rÙ
rÚ RrÛ h
j³ ubhj j° jT rÜ
rÝ rÞ }rß (hh ]rà
rá Rrâ h
j³ ubhj j° X Backtickrã rä
rå ræ }rç (hh ]rè
ré Rrê h
j³ ubhj j° h`rë
rì rí }rî (hh ]rï
rð Rrñ h
j³ ubhj j° X Regexrò ró
rô rõ }rö (hh ]r÷
rø Rrù h
j³ ubhj j° X Momentrú rû
rü rý }rþ (hh ]rÿ
r Rr h
j³ ubhj j° X Booleanr r
r r }r (hh ]r
r Rr h
j³ ubhj j° X Characterr
r
r r
}r (hh ]r
r Rr h
j³ ubhj j° X Delimiterr r
r r }r (hh ]r
r Rr h
j³ ubhj j° X Docr r
r r }r (hh ]r
r Rr! h
j³ ubhj j° hr"
r# r$ }r% (hh ]r&
r' Rr( h
j³ ubhj j° X Affixr) r*
r+ r, }r- (hh ]r.
r/ Rr0 h
j³ ubhj j° X Heredocr1 r2
r3 r4 }r5 (hh ]r6
r7 Rr8 h
j³ ubhj j° X Doubler9 r:
r; r< }r= (hh ]r>
r? Rr@ h
j³ ubhj j° X InterprA rB
rC rD }rE (hh ]rF
rG RrH h
j³ ubhj j° X AtomrI rJ
rK rL }rM (hh ]rN
rO RrP h
j³ ube
rQ RrR h
j j) j, jã jæ j jÈ j j j j j9 j< h`jí j1 j4 j¶ j¹ jT jÞ jò jõ jÔ j× j jÏ j
j
jú jý jA jD j j j¾ jÁ jI jL hj$ ubhj X NumberrS rT
rU rV }rW (hh ]rX (hj jS X FloatrY rZ
r[ r\ }r] (hh ]r^
r_ Rr` h
jV ubhj jS X Decra rb
rc rd }re (hh ]rf
rg Rrh h
jV ubhj jS X Radixri rj
rk rl }rm (hh ]rn
ro Rrp h
jV ubhj jS X Octrq rr
rs rt }ru (hh ]rv
rw Rrx h
jV ubhj jS X Binry rz
r{ r| }r} (hh ]r~
r Rr h
jV ubhj jS hòr
r r }r (hh ]r
r Rr h
jV ubhj jS X Hexr r
r r }r (hh ]r
r Rr h
jV ubhj jS X Integerr r
r r }r (hh ]r h(j jS j X Longr tr
r r }r (hh ]r
r Rr h
j uba
r Rr h
jV j j ubhj jS X Decimalr r¡
r¢ r£ }r¤ (hh ]r¥
r¦ Rr§ h
jV ube
r¨ Rr© h
j jy j| jY j\ j j j j jq jt ji jl hòj j j£ ja jd ube
rª Rr« h
h]j° j³ jS jV j j j j£ jT j j j ubhX Genericr¬
r
r® r¯ }r° (hh ]r± (hj¬ X Errorr² r³
r´ rµ }r¶ (hh ]r·
r¸ Rr¹ h
j¯ ubhj¬ X
Subheadingrº r»
r¼ r½ }r¾ (hh ]r¿
rÀ RrÁ h
j¯ ubhj¬ X Tracebackr rÃ
rÄ rÅ }rÆ (hh ]rÇ
rÈ RrÉ h
j¯ ubhj¬ X OutputrÊ rË
rÌ rÍ }rÎ (hh ]rÏ
rÐ RrÑ h
j¯ ubhj¬ X PromptrÒ rÓ
rÔ rÕ }rÖ (hh ]r×
rØ RrÙ h
j¯ ubhj¬ X DeletedrÚ rÛ
rÜ rÝ }rÞ (hh ]rß
rà Rrá h
j¯ ubhj¬ X Insertedrâ rã
rä rå }ræ (hh ]rç
rè Rré h
j¯ ubhj¬ X Headingrê rë
rì rí }rî (hh ]rï
rð Rrñ h
j¯ ubhj¬ X Strongrò ró
rô rõ }rö (hh ]r÷
rø Rrù h
j¯ ubhj¬ X Emphrú rû
rü rý }rþ (hh ]rÿ
r Rr h
j¯ ube
r Rr h
h]jÚ jÝ jú jý j² jµ jê jí jâ jå jÊ jÍ jÒ jÕ jò jõ jº j½ j jÅ ubhj²
r
r r }r (hh ]r
r Rr
h
h]ubhhjT
r
r r
}r (hh ]r
r Rr h
h]ubhX Textr
r
r r }r (hh ]r (hj X Rootr r
r r }r (hh ]r
r Rr h
j ubhj j r
r! r" }r# (hh ]r$
r% Rr& h
j ubhj X Ragr' r(
r) r* }r+ (hh ]r,
r- Rr. h
j ubhj X
Whitespacer/ r0
r1 r2 }r3 (hh ]r4
r5 Rr6 h
j ubhj X Beerr7 r8
r9 r: }r; (hh ]r<
r= Rr> h
j ubhj X Punctuationr? r@
rA rB }rC (hh ]rD
rE RrF h
j ube
rG RrH h
h]j/ j2 j j" j? jB j j j7 j: j' j* ubhX CommentrI
rJ
rK rL }rM (hh ]rN (hjI X PreprocrO rP
rQ rR }rS (hh ]rT
rU RrV h
jL ubhjI X MultirW rX
rY rZ }r[ (hh ]r\
r] Rr^ h
jL ubhjI X Hashbangr_ r`
ra rb }rc (hh ]rd
re Rrf h
jL ubhjI jÔ rg
rh ri }rj (hh ]rk
rl Rrm h
jL ubhjI X
SingleLinern ro
rp rq }rr (hh ]rs
rt Rru h
jL ubhjI j rv
rw rx }ry (hh ]rz
r{ Rr| h
jL ubhjI X Directiver} r~
r r }r (hh ]r
r Rr h
jL ubhjI X Multiliner
r
r r }r (hh ]r
r Rr h
jL ubhjI X
Singleliner r
r r }r (hh ]r
r Rr h
jL ubhjI X PreprocFiler r
r r }r (hh ]r
r Rr h
jL ubhjI X Specialr r
r r }r¡ (hh ]r¢
r£ Rr¤ h
jL ube
r¥ Rr¦ h
h]j_ jb j
j jO jR j j jÔ ji j j j} j jn jq j jx jW jZ j j ubhj?
r§
r¨ r© }rª (hh ]r« hj? X Indicatorr¬ r
r® r¯ }r° (hh ]r±
r² Rr³ h
j© uba
r´ Rrµ h
h]j¬ j¯ ube
r¶ Rr· j j h`hcj² j jT j
hhhhj j j? j© hhhkjI jL j¬ j¯ X Tokenr¸ h]j° j³ jS jV ubh:h=hRhUhBhEhJhMhhh"h%h2h5hhh*h-hhububX IMPLEMENTATIONr¹ rº j X r» r¼ hX MODULEr½ r¾ j j» r¿ hX SortingrÀ rÁ j© X ;r rà j X
rÄ rÅ j X (* J. Andrea, Dec.16/91 *)rÆ rÇ j X
rÈ rÉ j XG (* This code may be freely used and distributed, it may not be sold. *)rÊ rË j X
rÌ rÍ j X; (* Adapted to ISO Module-2 by Frank Schoonjans Feb 2004 *)rÎ rÏ j X
rÐ rÑ hX FROMrÒ rÓ j j» rÔ hX StoragerÕ rÖ j j» r× hX IMPORTrØ rÙ j j» rÚ hX ALLOCATErÛ rÜ j© j rÝ j X
rÞ rß hX CONSTrà rá j jÈ râ j X rã rä hX max_stackrå ræ j j» rç hkX =rè ré j j» rê j X 20rë rì j© j rí j jÈ rî j X rï rð hX n_smallrñ rò j X ró rô hkjè rõ j j» rö j X 6r÷ rø j© j rù j j» rú j X1 (* use a simple sort for this size and smaller *)rû rü j X
rý rþ hX VARrÿ r j jÈ r j X r r hX rtempr r j j» r j© X :r r j9 X REALr r
j© j r j jÈ r j X r
r hX ctempr r j j» r j© j r j9 X CARDINALr r j© j r j X
r r j X r r hX Lr r j© X ,r r j j» r hX Rr r j© j r! j j» r" hX nr# r$ j X r% r& j© j r' j9 X INTEGERr( r) j© j r* j jÈ r+ j X r, r- hX topr. r/ j© j r0 j j» r1 hX bottomr2 r3 j© j r4 j j» r5 hX lastflipr6 r7 j j» r8 j© j r9 j9 X INTEGERr: r; j© j r< j X
r= r> j X r? r@ hX tosrA rB j X rC rD j© j rE j9 X CARDINALrF rG j© j rH j jÈ rI j X rJ rK hX LstackrL rM j© j rN j j» rO hX RstackrP rQ j j» rR j© j rS hX ARRAYrT rU j j» rV j© X [rW rX j X 1rY rZ j© X ..r[ r\ hX max_stackr] r^ j© X ]r_ r` j j» ra hX OFrb rc j j» rd j9 X INTEGERre rf j© j rg j X
rh ri j X rj rk j X9 (* --------------------------------------------------- *)rl rm j jÈ rn j X ro rp hX PROCEDURErq rr j j» rs hX CardQSortIndexrt ru j© X (rv rw j j» rx hX xry rz j j» r{ j© j r| hX ARRAYr} r~ j j» r hX OFr r j j» r j9 X CARDINALr r j© j r
j j» r hX array_lenr r j j» r j© j r j9 X CARDINALr r j© j r j jÈ r j X r r hX VARr r j j» r hX indexr r j j» r j© j r hX ARRAYr r j j» r hX OFr r j j» r j9 X CARDINALr r j j» r j© X )r¡ r¢ j© j r£ j X
r¤ r¥ j X r¦ r§ hX VARr¨ r© j jÈ rª j X r« r¬ hX medianr r® j j» r¯ j© j r° j j» r± j9 X CARDINALr² r³ j© j r´ j jÈ rµ j X r¶ r· hX ir¸ r¹ j© j rº hX jr» r¼ j X r½ r¾ j© j r¿ j j» rÀ j9 X INTEGERrÁ r j© j rà j jÈ rÄ j X rÅ rÆ hX BEGINrÇ rÈ j X
rÉ rÊ j X rË rÌ hj# rÍ j j» rÎ hkX :=rÏ rÐ j j» rÑ j9 X VALrÒ rÓ j© jv rÔ j9 X INTEGERrÕ rÖ j© j r× hX array_lenrØ rÙ j© j¡ rÚ j j» rÛ hkX -rÜ rÝ j j» rÞ j jY rß j© j rà j j» rá j X (* back to zero offset *)râ rã j X
rä rå j X ræ rç j X (* initialize the index *)rè ré j jÈ rê j X rë rì hX FORrí rî j j» rï hj¸ rð j j» rñ hkX :=rò ró j j» rô j X 0rõ rö j j» r÷ hX TOrø rù j j» rú hj# rû j j» rü hX DOrý rþ j jÈ rÿ j X
r r hX indexr r j© jW r hj¸ r j© j_ r j j» r hkX :=r r j j» r
j9 X VALr r j© jv r
j9 X CARDINALr r j© j r hj¸ r j© j¡ r j© j r j jÈ r j X r r hX ENDr r j© j r j X
r r j X r r hX tosr r j j» r hkX :=r! r" j j» r# j jõ r$ j© j r% j X
r& r' j X r( r) hj r* j j» r+ hkX :=r, r- j j» r. j jõ r/ j© j r0 j X r1 r2 hj r3 j j» r4 hkX :=r5 r6 j j» r7 hj# r8 j© j r9 j X
r: r; j X r< r= j X (* PUSH very first set *)r> r? j jÈ r@ j X rA rB hX tosrC rD j j» rE hkX :=rF rG j j» rH hX tosrI rJ j j» rK hkX +rL rM j j» rN j jY rO j© j rP j X rQ rR hX LstackrS rT j© jW rU hX tosrV rW j© j_ rX j j» rY hkX :=rZ r[ j j» r\ hj r] j© j r^ j X r_ r` hX Rstackra rb j© jW rc hX tosrd re j© j_ rf j j» rg hkX :=rh ri j j» rj hj rk j© j rl j X
rm rn j X ro rp hX REPEATrq rr j X
rs rt j X
ru rv j X (* POP *)rw rx j jÈ ry j X
rz r{ hj r| j j» r} hkX :=r~ r j j» r hX Lstackr r j© jW r hX tosr r
j© j_ r j© j r j X r r hj r j j» r hkX :=r r j j» r hX Rstackr r j© jW r hX tosr r j© j_ r j© j r j X r r hX tosr r j j» r hkX :=r r j j» r hX tosr r j j» r hkjÜ r¡ j j» r¢ j jY r£ j© j r¤ j X
r¥ r¦ j X
r§ r¨ hX IFr© rª j j» r« hj r¬ j j» r hkjÜ r® j j» r¯ hj r° j j» r± hkjL r² j j» r³ j jY r´ j j» rµ hkX >r¶ r· j j» r¸ hX n_smallr¹ rº j j» r» hX THENr¼ r½ j X
r¾ r¿ j X rÀ rÁ hX REPEATr rà j jÈ rÄ j X rÅ rÆ hj¸ rÇ j j» rÈ hkX :=rÉ rÊ j j» rË hj rÌ j© j rÍ j X rÎ rÏ hj» rÐ j j» rÑ hkX :=rÒ rÓ j j» rÔ hj rÕ j© j rÖ j X r× rØ hX medianrÙ rÚ j j» rÛ hkX :=rÜ rÝ j j» rÞ hjy rß j© jW rà hX indexrá râ j© jW rã j© jv rä j j» rå hj ræ j j» rç hkjL rè j j» ré hj rê j j» rë j© j¡ rì j j» rí hX DIVrî rï j j» rð j X 2rñ rò j© j_ ró j© j_ rô j© j rõ j X
rö r÷ j X rø rù hX REPEATrú rû j jÈ rü j X rý rþ hX WHILErÿ r j j» r hjy r j© jW r hX indexr r j© jW r hj¸ r j© j_ r j© j_ r j j» r
hkX <r r j j» r
hX medianr r j j» r hX DOr r j jÈ r j X r r hj¸ r j j» r hkX :=r r j j» r hj¸ r j j» r hkjL r j j» r j jY r j© j r j jÈ r! j X r" r# hX ENDr$ r% j© j r& j jÈ r' j X r( r) hX WHILEr* r+ j j» r, hX medianr- r. j j» r/ hkj r0 j j» r1 hjy r2 j© jW r3 hX indexr4 r5 j© jW r6 hj» r7 j© j_ r8 j© j_ r9 j j» r: hX DOr; r< j jÈ r= j X r> r? hj» r@ j j» rA hkX :=rB rC j j» rD hj» rE j j» rF hkjÜ rG j j» rH j jY rI j© j rJ j jÈ rK j X rL rM hX ENDrN rO j© j rP j X
rQ rR j X rS rT hX IFrU rV j j» rW hj¸ rX j j» rY hkX <=rZ r[ j j» r\ hj» r] j j» r^ hX THENr_ r` j j» ra j X
(* swap *)rb rc j jÈ rd j X re rf hX ctemprg rh j j» ri hkX :=rj rk j j» rl hX indexrm rn j© jW ro hj¸ rp j© j_ rq j© j rr j X rs rt hX indexru rv j© jW rw hj¸ rx j© j_ ry j j» rz hkX :=r{ r| j j» r} hX indexr~ r j© jW r hj» r j© j_ r j© j r j X r r
hX indexr r j© jW r hj» r j© j_ r j j» r hkX :=r r j j» r hX ctempr r j© j r j jÈ r j X r r hj¸ r j j» r hkX :=r r j j» r hj¸ r j j» r hkjL r j j» r j jY r j© j r j X r r¡ hj» r¢ j j» r£ hkX :=r¤ r¥ j j» r¦ hj» r§ j j» r¨ hkjÜ r© j j» rª j jY r« j© j r¬ j jÈ r j X r® r¯ hX ENDr° r± j© j r² j jÈ r³ j X r´ rµ hX UNTILr¶ r· j j» r¸ hj¸ r¹ j j» rº hkj¶ r» j j» r¼ hj» r½ j© j r¾ j X
r¿ rÀ j X rÁ r hX IFrà rÄ j j» rÅ hj» rÆ j j» rÇ hkjÜ rÈ j j» rÉ hj rÊ j j» rË hkj rÌ j j» rÍ hj rÎ j j» rÏ hkjÜ rÐ j j» rÑ hj¸ rÒ j j» rÓ hX THENrÔ rÕ j jÈ rÖ j X r× rØ hX IFrÙ rÚ j j» rÛ hj¸ rÜ j j» rÝ hkj rÞ j j» rß hj rà j j» rá hX THENrâ rã j j» rä j X
(* PUSH *)rå ræ j jÈ rç j X rè ré hX tosrê rë j j» rì hkX :=rí rî j j» rï hX tosrð rñ j j» rò hkjL ró j j» rô j jY rõ j© j rö j X r÷ rø hX Lstackrù rú j© jW rû hX tosrü rý j© j_ rþ j j» rÿ hkX :=r r j j» r hj¸ r j© j r j X r r hX Rstackr r j© jW r hX tosr
r j© j_ r j j» r
hkX :=r r j j» r hj r j© j r j jÈ r j X r r hX ENDr r j© j r j jÈ r j X r r hj r j j» r hkX :=r r j j» r hj» r! j© j r" j jÈ r# j X r$ r% hX ELSEr& r' j jÈ r( j X r) r* hX IFr+ r, j j» r- hj r. j j» r/ hkj r0 j j» r1 hj» r2 j j» r3 hX THENr4 r5 j j» r6 j X
(* push *)r7 r8 j jÈ r9 j X r: r; hX tosr< r= j j» r> hkX :=r? r@ j j» rA hX tosrB rC j j» rD hkjL rE j j» rF j jY rG j© j rH j X rI rJ hX LstackrK rL j© jW rM hX tosrN rO j© j_ rP j j» rQ hkX :=rR rS j j» rT hj rU j© j rV j X rW rX hX RstackrY rZ j© jW r[ hX tosr\ r] j© j_ r^ j j» r_ hkX :=r` ra j j» rb hj» rc j© j rd j jÈ re j X rf rg hX ENDrh ri j© j rj j jÈ rk j X rl rm hj rn j j» ro hkX :=rp rq j j» rr hj¸ rs j© j rt j jÈ ru j X rv rw hX ENDrx ry j© j rz j X
r{ r| j X r} r~ hX UNTILr r j j» r hj r j j» r hkX >=r r
j j» r hj r j© j r j X
r r j X r r hX ELSEr r j X
r r j X r r j X+ (* small sort for small number of values *)r r j jÈ r j X r r hX FORr r j j» r hj¸ r j j» r hkX :=r r j j» r hj r j j» r¡ hX TOr¢ r£ j j» r¤ hj r¥ j j» r¦ hkjÜ r§ j j» r¨ j jY r© j j» rª hX DOr« r¬ j jÈ r j X
r® r¯ hX FORr° r± j j» r² hj» r³ j j» r´ hkX :=rµ r¶ j j» r· hj¸ r¸ j j» r¹ hX TOrº r» j j» r¼ hj r½ j j» r¾ hX DOr¿ rÀ j jÈ rÁ j X r rà hX IFrÄ rÅ j j» rÆ hjy rÇ j© jW rÈ hX indexrÉ rÊ j© jW rË hj¸ rÌ j© j_ rÍ j© j_ rÎ j j» rÏ hkj¶ rÐ j j» rÑ hjy rÒ j© jW rÓ hX indexrÔ rÕ j© jW rÖ hj» r× j© j_ rØ j© j_ rÙ j j» rÚ hX THENrÛ rÜ j jÈ rÝ j X rÞ rß hX ctemprà rá j X râ rã hkX :=rä rå j j» ræ hX indexrç rè j© jW ré hj¸ rê j© j_ rë j© j rì j jÈ rí j X rî rï hX indexrð rñ j© jW rò hj¸ ró j© j_ rô j j» rõ hkX :=rö r÷ j j» rø hX indexrù rú j© jW rû hj» rü j© j_ rý j© j rþ j jÈ rÿ j X r r hX indexr r j© jW r hj» r j© j_ r j j» r hkX :=r r j j» r
hX ctempr r j jÈ r
j X r r hX ENDr r j© j r j jÈ r j X
r r hX ENDr r j© j r j jÈ r j X r r hX ENDr r j© j r j X
r r j X r! r" hX ENDr# r$ j© j r% j j» r& j X (* check for small *)r' r( j X
r) r* j X r+ r, hX UNTILr- r. j j» r/ hX tosr0 r1 j j» r2 hkjè r3 j j» r4 j jõ r5 j© j r6 j X
r7 r8 j X r9 r: hX ENDr; r< j j» r= hX CardQSortIndexr> r? j© j r@ j X
rA rB j X rC rD j X9 (* --------------------------------------------------- *)rE rF j jÈ rG j X rH rI hX PROCEDURErJ rK j j» rL hX RealQSortIndexrM rN j© jv rO j j» rP hjy rQ j j» rR j© j rS hX ARRAYrT rU j j» rV hX OFrW rX j j» rY j9 X REALrZ r[ j© j r\ j j» r] hX array_lenr^ r_ j j» r` j© j ra j9 X CARDINALrb rc j© j rd j jÈ re j X rf rg hX VARrh ri j j» rj hX indexrk rl j j» rm j© j rn hX ARRAYro rp j j» rq hX OFrr rs j j» rt j9 X CARDINALru rv j j» rw j© j¡ rx j© j ry j X
rz r{ j X r| r} hX VARr~ r j jÈ r j X r r hX medianr r j j» r
j© j r j9 X REALr r j© j r j jÈ r j X r r hj¸ r j© j r hj» r j X r r j© j r j9 X INTEGERr r j© j r j jÈ r j X r r hX BEGINr r j X
r r j X r r hj# r j j» r hkX :=r¡ r¢ j j» r£ j9 X VALr¤ r¥ j© jv r¦ j9 X INTEGERr§ r¨ j© j r© hX array_lenrª r« j© j¡ r¬ j j» r hkjÜ r® j j» r¯ j jY r° j© j r± j j» r² j X (* back to zero offset *)r³ r´ j X
rµ r¶ j X r· r¸ j X (* initialize the index *)r¹ rº j jÈ r» j X r¼ r½ hX FORr¾ r¿ j j» rÀ hj¸ rÁ j j» r hkX :=rà rÄ j j» rÅ j jõ rÆ j j» rÇ hX TOrÈ rÉ j j» rÊ hj# rË j j» rÌ hX DOrÍ rÎ j jÈ rÏ j X
rÐ rÑ hX indexrÒ rÓ j© jW rÔ hj¸ rÕ j© j_ rÖ j j» r× hkX :=rØ rÙ j j» rÚ j9 X VALrÛ rÜ j© jv rÝ j9 X CARDINALrÞ rß j© j rà hj¸ rá j© j¡ râ j© j rã j jÈ rä j X rå ræ hX ENDrç rè j© j ré j X
rê rë j X rì rí hX tosrî rï j j» rð hkX :=rñ rò j j» ró j jõ rô j© j rõ j X
rö r÷ j X rø rù hj rú j j» rû hkX :=rü rý j j» rþ j jõ rÿ j© j r j X r r hj r j j» r hkX :=r r j j» r hj# r j© j r j X
r
r j X r r
j X (* PUSH very first set *)r r j jÈ r j X r r hX tosr r j j» r hkX :=r r j j» r hX tosr r j j» r hkjL r j j» r j jY r j© j r j X r r! hX Lstackr" r# j© jW r$ hX tosr% r& j© j_ r' j j» r( hkX :=r) r* j j» r+ hj r, j© j r- j X r. r/ hX Rstackr0 r1 j© jW r2 hX tosr3 r4 j© j_ r5 j j» r6 hkX :=r7 r8 j j» r9 hj r: e(j© j r; j X
r< r= j X r> r? hX REPEATr@ rA j X
rB rC j X
rD rE j X (* POP *)rF rG j jÈ rH j X
rI rJ hj rK j j» rL hkX :=rM rN j j» rO hX LstackrP rQ j© jW rR hX tosrS rT j© j_ rU j© j rV j X rW rX hj rY j j» rZ hkX :=r[ r\ j j» r] hX Rstackr^ r_ j© jW r` hX tosra rb j© j_ rc j© j rd j X re rf hX tosrg rh j j» ri hkX :=rj rk j j» rl hX tosrm rn j j» ro hkjÜ rp j j» rq j jY rr j© j rs j X
rt ru j X
rv rw hX IFrx ry j j» rz hj r{ j j» r| hkjÜ r} j j» r~ hj r j j» r hkjL r j j» r j jY r j j» r hkj¶ r
j j» r hX n_smallr r j j» r hX THENr r j X
r r j X r r hX REPEATr r j jÈ r j X r r hj¸ r j j» r hkX :=r r j j» r hj r j© j r j X r r hj» r j j» r hkX :=r r¡ j j» r¢ hj r£ j© j r¤ j X r¥ r¦ hX medianr§ r¨ j j» r© hkX :=rª r« j j» r¬ hjy r j© jW r® hX indexr¯ r° j© jW r± j© jv r² j j» r³ hj r´ j j» rµ hkjL r¶ j j» r· hj r¸ j j» r¹ j© j¡ rº j j» r» hX DIVr¼ r½ j j» r¾ j jñ r¿ j© j_ rÀ j© j_ rÁ j© j r j X
rà rÄ j X rÅ rÆ hX REPEATrÇ rÈ j jÈ rÉ j X rÊ rË hX WHILErÌ rÍ j j» rÎ hjy rÏ j© jW rÐ hX indexrÑ rÒ j© jW rÓ hj¸ rÔ j© j_ rÕ j© j_ rÖ j j» r× hkj rØ j j» rÙ hX medianrÚ rÛ j j» rÜ hX DOrÝ rÞ j jÈ rß j X rà rá hj¸ râ j j» rã hkX :=rä rå j j» ræ hj¸ rç j j» rè hkjL ré j j» rê j jY rë j© j rì j jÈ rí j X rî rï hX ENDrð rñ j© j rò j jÈ ró j X rô rõ hX WHILErö r÷ j j» rø hX medianrù rú j j» rû hkj rü j j» rý hjy rþ j© jW rÿ hX indexr
r
j© jW r
hj» r
j© j_ r
j© j_ r
j j» r
hX DOr
r
j jÈ r
j X r
r
hj» r
j j» r
hkX :=r
r
j j» r
hj» r
j j» r
hkjÜ r
j j» r
j jY r
j© j r
j jÈ r
j X r
r
hX ENDr
r
j© j r
j X
r
r
j X r
r
hX IFr!
r"
j j» r#
hj¸ r$
j j» r%
hkX <=r&
r'
j j» r(
hj» r)
j j» r*
hX THENr+
r,
j j» r-
j X
(* swap *)r.
r/
j jÈ r0
j X r1
r2
hX ctempr3
r4
j j» r5
hkX :=r6
r7
j j» r8
hX indexr9
r:
j© jW r;
hj¸ r<
j© j_ r=
j© j r>
j X r?
r@
hX indexrA
rB
j© jW rC
hj¸ rD
j© j_ rE
j j» rF
hkX :=rG
rH
j j» rI
hX indexrJ
rK
j© jW rL
hj» rM
j© j_ rN
j© j rO
j X rP
rQ
hX indexrR
rS
j© jW rT
hj» rU
j© j_ rV
j j» rW
hkX :=rX
rY
j j» rZ
hX ctempr[
r\
j© j r]
j jÈ r^
j X r_
r`
hj¸ ra
j j» rb
hkX :=rc
rd
j j» re
hj¸ rf
j j» rg
hkjL rh
j j» ri
j jY rj
j© j rk
j X rl
rm
hj» rn
j j» ro
hkX :=rp
rq
j j» rr
hj» rs
j j» rt
hkjÜ ru
j j» rv
j jY rw
j© j rx
j jÈ ry
j X rz
r{
hX ENDr|
r}
j© j r~
j jÈ r
j X r
r
hX UNTILr
r
j j» r
hj¸ r
j j» r
hkj¶ r
j j» r
hj» r
j© j r
j X
r
r
j X r
r
hX IFr
r
j j» r
hj» r
j j» r
hkjÜ r
j j» r
hj r
j j» r
hkj r
j j» r
hj r
j j» r
hkjÜ r
j j» r
hj¸ r
j j» r
hX THENr
r¡
j jÈ r¢
j X r£
r¤
hX IFr¥
r¦
j j» r§
hj¸ r¨
j j» r©
hkj rª
j j» r«
hj r¬
j j» r
hX THENr®
r¯
j j» r°
j X
(* PUSH *)r±
r²
j jÈ r³
j X r´
rµ
hX tosr¶
r·
j j» r¸
hkX :=r¹
rº
j j» r»
hX tosr¼
r½
j j» r¾
hkjL r¿
j j» rÀ
j jY rÁ
j© j rÂ
j X rÃ
rÄ
hX LstackrÅ
rÆ
j© jW rÇ
hX tosrÈ
rÉ
j© j_ rÊ
j j» rË
hkX :=rÌ
rÍ
j j» rÎ
hj¸ rÏ
j© j rÐ
j X rÑ
rÒ
hX RstackrÓ
rÔ
j© jW rÕ
hX tosrÖ
r×
j© j_ rØ
j j» rÙ
hkX :=rÚ
rÛ
j j» rÜ
hj rÝ
j© j rÞ
j jÈ rß
j X rà
rá
hX ENDrâ
rã
j© j rä
j jÈ rå
j X ræ
rç
hj rè
j j» ré
hkX :=rê
rë
j j» rì
hj» rí
j© j rî
j jÈ rï
j X rð
rñ
hX ELSErò
ró
j jÈ rô
j X rõ
rö
hX IFr÷
rø
j j» rù
hj rú
j j» rû
hkj rü
j j» rý
hj» rþ
j j» rÿ
hX THENr r j j» r j X
(* push *)r r j jÈ r j X r r hX tosr r j j» r
hkX :=r r j j» r
hX tosr r j j» r hkjL r j j» r j jY r j© j r j X r r hX Lstackr r j© jW r hX tosr r j© j_ r j j» r hkX :=r r j j» r hj r! j© j r" j X r# r$ hX Rstackr% r& j© jW r' hX tosr( r) j© j_ r* j j» r+ hkX :=r, r- j j» r. hj» r/ j© j r0 j jÈ r1 j X r2 r3 hX ENDr4 r5 j© j r6 j jÈ r7 j X r8 r9 hj r: j j» r; hkX :=r< r= j j» r> hj¸ r? j© j r@ j jÈ rA j X rB rC hX ENDrD rE j© j rF j X
rG rH j X rI rJ hX UNTILrK rL j j» rM hj rN j j» rO hkX >=rP rQ j j» rR hj rS j© j rT j X
rU rV j X rW rX hX ELSErY rZ j X
r[ r\ j X r] r^ j X+ (* small sort for small number of values *)r_ r` j jÈ ra j X rb rc hX FORrd re j j» rf hj¸ rg j j» rh hkX :=ri rj j j» rk hj rl j j» rm hX TOrn ro j j» rp hj rq j j» rr hkjÜ rs j j» rt j jY ru j j» rv hX DOrw rx j jÈ ry j X
rz r{ hX FORr| r} j j» r~ hj» r j j» r hkX :=r r j j» r hj¸ r j j» r
hX TOr r j j» r hj r j j» r hX DOr r j jÈ r j X r r hX IFr r j j» r hjy r j© jW r hX indexr r j© jW r hj¸ r j© j_ r j© j_ r j j» r hkj¶ r j j» r hjy r j© jW r hX indexr r¡ j© jW r¢ hj» r£ j© j_ r¤ j© j_ r¥ j j» r¦ hX THENr§ r¨ j jÈ r© j X rª r« hX ctempr¬ r j X r® r¯ hkX :=r° r± j j» r² hX indexr³ r´ j© jW rµ hj¸ r¶ j© j_ r· j© j r¸ j jÈ r¹ j X rº r» hX indexr¼ r½ j© jW r¾ hj¸ r¿ j© j_ rÀ j j» rÁ hkX :=r rà j j» rÄ hX indexrÅ rÆ j© jW rÇ hj» rÈ j© j_ rÉ j© j rÊ j jÈ rË j X rÌ rÍ hX indexrÎ rÏ j© jW rÐ hj» rÑ j© j_ rÒ j j» rÓ hkX :=rÔ rÕ j j» rÖ hX ctempr× rØ j jÈ rÙ j X rÚ rÛ hX ENDrÜ rÝ j© j rÞ j jÈ rß j X
rà rá hX ENDrâ rã j© j rä j jÈ rå j X ræ rç hX ENDrè ré j© j rê j X
rë rì j X rí rî hX ENDrï rð j© j rñ j j» rò j X (* check for small *)ró rô j X
rõ rö j X r÷ rø hX UNTILrù rú j j» rû hX tosrü rý j j» rþ hkjè rÿ j j» r j jõ r j© j r j X
r r j X r r hX ENDr r j j» r hX RealQSortIndexr
r j© j r j X
r
r j X r r j X9 (* --------------------------------------------------- *)r r j jÈ r j X r r hX PROCEDUREr r j j» r hX CardQSortr r j© jv r j j» r hX VARr r j j» r hjy r j j» r! j© j r" hX ARRAYr# r$ j j» r% hX OFr& r' j j» r( j9 X CARDINALr) r* j© j r+ j j» r, hX array_lenr- r. j j» r/ j© j r0 j9 X CARDINALr1 r2 j j» r3 j© j¡ r4 j© j r5 j X
r6 r7 j X r8 r9 hX VARr: r; j jÈ r< j X r= r> hX medianr? r@ j j» rA j© j rB j j» rC j9 X CARDINALrD rE j© j rF j jÈ rG j X rH rI hj# rJ j© j rK hj¸ rL j© j rM hj» rN j X rO rP j© j rQ j j» rR j9 X INTEGERrS rT j© j rU j jÈ rV j X rW rX hX BEGINrY rZ j X
r[ r\ j X r] r^ hj# r_ j j» r` hkX :=ra rb j j» rc j9 X VALrd re j© jv rf j9 X INTEGERrg rh j© j ri hX array_lenrj rk j© j¡ rl j j» rm hkjÜ rn j j» ro j jY rp j© j rq j j» rr j X (* back to zero offset *)rs rt j X
ru rv j X rw rx hX tosry rz j j» r{ hkX :=r| r} j j» r~ j jõ r j© j r j X
r r j X r r hj r
j j» r hkX :=r r j j» r j jõ r j© j r j X r r hj r j j» r hkX :=r r j j» r hj# r j© j r j X
r r j X r r j X (* PUSH very first set *)r r j jÈ r j X r r hX tosr r j j» r hkX :=r¡ r¢ j j» r£ hX tosr¤ r¥ j j» r¦ hkjL r§ j j» r¨ j jY r© j© j rª j X r« r¬ hX Lstackr r® j© jW r¯ hX tosr° r± j© j_ r² j j» r³ hkX :=r´ rµ j j» r¶ hj r· j© j r¸ j X r¹ rº hX Rstackr» r¼ j© jW r½ hX tosr¾ r¿ j© j_ rÀ j j» rÁ hkX :=r rà j j» rÄ hj rÅ j© j rÆ j X
rÇ rÈ j X rÉ rÊ hX REPEATrË rÌ j X
rÍ rÎ j X
rÏ rÐ j X (* POP *)rÑ rÒ j jÈ rÓ j X
rÔ rÕ hj rÖ j j» r× hkX :=rØ rÙ j j» rÚ hX LstackrÛ rÜ j© jW rÝ hX tosrÞ rß j© j_ rà j© j rá j X râ rã hj rä j j» rå hkX :=ræ rç j j» rè hX Rstackré rê j© jW rë hX tosrì rí j© j_ rî j© j rï j X rð rñ hX tosrò ró j j» rô hkX :=rõ rö j j» r÷ hX tosrø rù j j» rú hkjÜ rû j j» rü j jY rý j© j rþ j X
rÿ r
j X
r
r
hX IFr
r
j j» r
hj r
j j» r
hkjÜ r
j j» r
hj r
j j» r
hkjL r
j j» r
j jY r
j j» r
hkj¶ r
j j» r
hX n_smallr
r
j j» r
hX THENr
r
j X
r
r
j X r
r
hX REPEATr
r
j jÈ r
j X r
r
hj¸ r
j j» r!
hkX :=r"
r#
j j» r$
hj r%
j© j r&
j X r'
r(
hj» r)
j j» r*
hkX :=r+
r,
j j» r-
hj r.
j© j r/
j X r0
r1
hX medianr2
r3
j j» r4
hkX :=r5
r6
j j» r7
hjy r8
j© jW r9
j© jv r:
j j» r;
hj r<
j j» r=
hkjL r>
j j» r?
hj r@
j j» rA
j© j¡ rB
j j» rC
hX DIVrD
rE
j j» rF
j jñ rG
j© j_ rH
j© j rI
j X
rJ
rK
j X rL
rM
hX REPEATrN
rO
j jÈ rP
j X rQ
rR
hX WHILErS
rT
j j» rU
hjy rV
j© jW rW
hj¸ rX
j© j_ rY
j j» rZ
hkj r[
j j» r\
hX medianr]
r^
j j» r_
hX DOr`
ra
j jÈ rb
j X rc
rd
hj¸ re
j j» rf
hkX :=rg
rh
j j» ri
hj¸ rj
j j» rk
hkjL rl
j j» rm
j jY rn
j© j ro
j jÈ rp
j X rq
rr
hX ENDrs
rt
j© j ru
j jÈ rv
j X rw
rx
hX WHILEry
rz
j j» r{
hX medianr|
r}
j j» r~
hkj r
j j» r
hjy r
j© jW r
hj» r
j© j_ r
j j» r
hX DOr
r
j jÈ r
j X r
r
hj» r
j j» r
hkX :=r
r
j j» r
hj» r
j j» r
hkjÜ r
j j» r
j jY r
j© j r
j jÈ r
j X r
r
hX ENDr
r
j© j r
j X
r
r
j X r
r
hX IFr
r¡
j j» r¢
hj¸ r£
j j» r¤
hkX <=r¥
r¦
j j» r§
hj» r¨
j j» r©
hX THENrª
r«
j j» r¬
j X
(* swap *)r
r®
j jÈ r¯
j X r°
r±
hX ctempr²
r³
j j» r´
hkX :=rµ
r¶
j j» r·
hjy r¸
j© jW r¹
hj¸ rº
j© j_ r»
j© j r¼
j X r½
r¾
hjy r¿
j© jW rÀ
hj¸ rÁ
j© j_ rÂ
j j» rÃ
hkX :=rÄ
rÅ
j j» rÆ
hjy rÇ
j© jW rÈ
hj» rÉ
j© j_ rÊ
j© j rË
j X rÌ
rÍ
hjy rÎ
j© jW rÏ
hj» rÐ
j© j_ rÑ
j j» rÒ
hkX :=rÓ
rÔ
j j» rÕ
hX ctemprÖ
r×
j© j rØ
j jÈ rÙ
j X rÚ
rÛ
hj¸ rÜ
j j» rÝ
hkX :=rÞ
rß
j j» rà
hj¸ rá
j j» râ
hkjL rã
j j» rä
j jY rå
j© j ræ
j X rç
rè
hj» ré
j j» rê
hkX :=rë
rì
j j» rí
hj» rî
j j» rï
hkjÜ rð
j j» rñ
j jY rò
j© j ró
j jÈ rô
j X rõ
rö
hX ENDr÷
rø
j© j rù
j jÈ rú
j X rû
rü
hX UNTILrý
rþ
j j» rÿ
hj¸ r j j» r hkj¶ r j j» r hj» r j© j r j X
r r j X r r hX IFr
r j j» r hj» r
j j» r hkjÜ r j j» r hj r j j» r hkj r j j» r hj r j j» r hkjÜ r j j» r hj¸ r j j» r hX THENr r j jÈ r j X r r hX IFr r! j j» r" hj¸ r# j j» r$ hkj r% j j» r& hj r' j j» r( hX THENr) r* j j» r+ j X
(* PUSH *)r, r- j jÈ r. j X r/ r0 hX tosr1 r2 j j» r3 hkX :=r4 r5 j j» r6 hX tosr7 r8 j j» r9 hkjL r: j j» r; j jY r< j© j r= j X r> r? hX Lstackr@ rA j© jW rB hX tosrC rD j© j_ rE j j» rF hkX :=rG rH j j» rI hj¸ rJ j© j rK j X rL rM hX RstackrN rO j© jW rP hX tosrQ rR j© j_ rS j j» rT hkX :=rU rV j j» rW hj rX j© j rY j jÈ rZ j X r[ r\ hX ENDr] r^ j© j r_ j jÈ r` j X ra rb hj rc j j» rd hkX :=re rf j j» rg hj» rh j© j ri j jÈ rj j X rk rl hX ELSErm rn j jÈ ro j X rp rq hX IFrr rs j j» rt hj ru j j» rv hkj rw j j» rx hj» ry e(j j» rz hX THENr{ r| j j» r} j X
(* push *)r~ r j jÈ r j X r r hX tosr r j j» r
hkX :=r r j j» r hX tosr r j j» r hkjL r j j» r j jY r j© j r j X r r hX Lstackr r j© jW r hX tosr r j© j_ r j j» r hkX :=r r j j» r hj r j© j r j X r r hX Rstackr r¡ j© jW r¢ hX tosr£ r¤ j© j_ r¥ j j» r¦ hkX :=r§ r¨ j j» r© hj» rª j© j r« j jÈ r¬ j X r r® hX ENDr¯ r° j© j r± j jÈ r² j X r³ r´ hj rµ j j» r¶ hkX :=r· r¸ j j» r¹ hj¸ rº j© j r» j jÈ r¼ j X r½ r¾ hX ENDr¿ rÀ j© j rÁ j X
r rà j X rÄ rÅ hX UNTILrÆ rÇ j j» rÈ hj rÉ j j» rÊ hkX >=rË rÌ j j» rÍ hj rÎ j© j rÏ j X
rÐ rÑ j X rÒ rÓ hX ELSErÔ rÕ j X
rÖ r× j X rØ rÙ j X+ (* small sort for small number of values *)rÚ rÛ j jÈ rÜ j X rÝ rÞ hX FORrß rà j j» rá hj¸ râ j j» rã hkX :=rä rå j j» ræ hj rç j j» rè hX TOré rê j j» rë hj rì j j» rí hkjÜ rî j j» rï j jY rð j j» rñ hX DOrò ró j jÈ rô j X
rõ rö hX FORr÷ rø j j» rù hj» rú j j» rû hkX :=rü rý j j» rþ hj¸ rÿ j j» r hX TOr r j j» r hj r j j» r hX DOr r j jÈ r j X r r
hX IFr r j j» r
hjy r j© jW r hj¸ r j© j_ r j j» r hkj¶ r j j» r hjy r j© jW r hj» r j© j_ r j j» r hX THENr r j jÈ r j X r r hX ctempr r j j» r! hkX :=r" r# j j» r$ hjy r% j© jW r& hj¸ r' j© j_ r( j© j r) j jÈ r* j X r+ r, hjy r- j© jW r. hj¸ r/ j© j_ r0 j X r1 r2 hkX :=r3 r4 j j» r5 hjy r6 j© jW r7 hj» r8 j© j_ r9 j© j r: j jÈ r; j X r< r= hjy r> j© jW r? hj» r@ j© j_ rA j X rB rC hkX :=rD rE j j» rF hX ctemprG rH j jÈ rI j X rJ rK hX ENDrL rM j© j rN j jÈ rO j X
rP rQ hX ENDrR rS j© j rT j jÈ rU j X rV rW hX ENDrX rY j© j rZ j X
r[ r\ j X r] r^ hX ENDr_ r` j© j ra j j» rb j X (* check for small *)rc rd j X
re rf j X rg rh hX UNTILri rj j j» rk hX tosrl rm j j» rn hkjè ro j j» rp j jõ rq j© j rr j X
rs rt j X ru rv hX ENDrw rx j j» ry hX CardQSortrz r{ j© j r| j X
r} r~ j X r r j X; (* ----------------------------------------------------- *)r r j jÈ r j X r r
hX PROCEDUREr r j j» r hX CardBSortr r j© jv r j j» r hX VARr r j j» r hjy r j j» r j© j r hX ARRAYr r j j» r hX OFr r j j» r j9 X CARDINALr r j© j r j j» r hX array_lenr r j j» r j© j r j9 X CARDINALr¡ r¢ j j» r£ j© j¡ r¤ j© j r¥ j jÈ r¦ j X r§ r¨ hX VARr© rª j j» r« hj¸ r¬ j© j r hj» r® j j» r¯ j© j r° j j» r± j9 X INTEGERr² r³ j© j r´ j jÈ rµ j X r¶ r· hX BEGINr¸ r¹ j jÈ rº j X r» r¼ hX topr½ r¾ j X r¿ rÀ hkX :=rÁ r j j» rà j jõ rÄ j© j rÅ j X rÆ rÇ j X! (* open arrays are zero offset *)rÈ rÉ j jÈ rÊ j X rË rÌ hX bottomrÍ rÎ j j» rÏ hkX :=rÐ rÑ j j» rÒ j9 X VALrÓ rÔ j© jv rÕ j9 X INTEGERrÖ r× j© j rØ hX array_lenrÙ rÚ j© j¡ rÛ j j» rÜ hkjÜ rÝ j j» rÞ j jY rß j© j rà j X
rá râ j X rã rä hX WHILErå ræ j j» rç hX toprè ré j j» rê hkj rë j j» rì hX bottomrí rî j j» rï hX DOrð rñ j X
rò ró j X
rô rõ hX lastfliprö r÷ j j» rø hkX :=rù rú j j» rû hX toprü rý j© j rþ j X
rÿ r j X
r r hX FORr r j j» r hj¸ r j j» r hkX :=r r j j» r
hX topr r j j» r
hX TOr r j j» r hX bottomr r hkjÜ r j jY r j j» r hX DOr r j jÈ r j X
r r hX IFr r j j» r hjy r j© jW r hj¸ r j© j_ r! j j» r" hkj¶ r# j j» r$ hjy r% j© jW r& hj¸ r' hkjL r( j jY r) j© j_ r* j j» r+ hX THENr, r- j X r. r/ j X
(* flip *)r0 r1 j jÈ r2 j X r3 r4 hX ctempr5 r6 j X r7 r8 hkX :=r9 r: j j» r; hjy r< j© jW r= hj¸ r> j© j_ r? j© j r@ j jÈ rA j X rB rC hjy rD j© jW rE hj¸ rF j© j_ rG j X rH rI hkX :=rJ rK j j» rL hjy rM j© jW rN hj¸ rO hkjL rP j jY rQ j© j_ rR j© j rS j jÈ rT j X rU rV hjy rW j© jW rX hj¸ rY hkjL rZ j jY r[ j© j_ r\ j j» r] hkX :=r^ r_ j j» r` hX ctempra rb j© j rc j jÈ rd j X re rf hX lastfliprg rh j j» ri hkX :=rj rk j j» rl hj¸ rm j© j rn j jÈ ro j X
rp rq hX ENDrr rs j© j rt j jÈ ru j X
rv rw hX ENDrx ry j© j rz j X
r{ r| j X
r} r~ hX bottomr r j j» r hkX :=r r j j» r hX lastflipr
r j© j r j X
r r j X
r r hX IFr r j j» r hX bottomr r j j» r hkj¶ r j j» r hX topr r j j» r hX THENr r j X
r r j X
r r hj¸ r j j» r hkX :=r r j j» r¡ hX bottomr¢ r£ j j» r¤ hkjÜ r¥ j j» r¦ j jY r§ j© j r¨ j jÈ r© j X
rª r« hX FORr¬ r j j» r® hj» r¯ j j» r° hkX :=r± r² j j» r³ hX topr´ rµ j j» r¶ hX TOr· r¸ j j» r¹ hX bottomrº r» hkjÜ r¼ j jY r½ j j» r¾ hX DOr¿ rÀ j jÈ rÁ j X r rà hX IFrÄ rÅ j j» rÆ hjy rÇ j© jW rÈ hj¸ rÉ j© j_ rÊ j j» rË hkj¶ rÌ j j» rÍ hjy rÎ j© jW rÏ hj¸ rÐ hkjL rÑ j jY rÒ j© j_ rÓ j j» rÔ hX THENrÕ rÖ j X r× rØ j X
(* flip *)rÙ rÚ j jÈ rÛ j X rÜ rÝ hX ctemprÞ rß j X rà rá hkX :=râ rã j j» rä hjy rå j© jW ræ hj¸ rç j© j_ rè j© j ré j jÈ rê j X rë rì hjy rí j© jW rî hj¸ rï j© j_ rð j X rñ rò hkX :=ró rô j j» rõ hjy rö j© jW r÷ hj¸ rø hkjL rù j jY rú j© j_ rû j© j rü j jÈ rý j X rþ rÿ hjy r j© jW r hj¸ r hkjL r j jY r j© j_ r j j» r hkX :=r r j j» r hX ctempr
r j© j r j jÈ r
j X r r hX lastflipr r j j» r hkX :=r r j j» r hj¸ r j© j r j jÈ r j X r r hX ENDr r j© j r j jÈ r j X r r hj¸ r! j j» r" hkX :=r# r$ j j» r% hj¸ r& j j» r' hkjÜ r( j j» r) j jY r* j© j r+ j jÈ r, j X
r- r. hX ENDr/ r0 j© j r1 j X
r2 r3 j X
r4 r5 hX topr6 r7 j j» r8 hkX :=r9 r: j j» r; hX lastflipr< r= j j» r> hkjL r? j j» r@ j jY rA j© j rB j X
rC rD j X
rE rF hX ELSErG rH j jÈ rI j X
rJ rK j X (* force a loop failure *)rL rM j jÈ rN j X
rO rP hX toprQ rR j j» rS hkX :=rT rU j j» rV hX bottomrW rX j j» rY hkjL rZ j j» r[ j jY r\ j© j r] j jÈ r^ j X
r_ r` hX ENDra rb j© j rc j X
rd re j X rf rg hX ENDrh ri j© j rj j X
rk rl j X rm rn hX ENDro rp j j» rq hX CardBSortrr rs j© j rt j X
ru rv j X rw rx j X; (* ----------------------------------------------------- *)ry rz j jÈ r{ j X r| r} hX PROCEDUREr~ r j j» r hX RealBSortr r j© jv r j j» r hX VARr
r j j» r hjy r j j» r j© j r hX ARRAYr r j j» r hX OFr r j j» r j9 X REALr r j© j r j j» r hX array_lenr r j j» r j© j r j9 X CARDINALr r j j» r j© j¡ r j© j r j jÈ r j X r r hX VARr¡ r¢ j j» r£ hX bottomr¤ r¥ j© j r¦ hX topr§ r¨ j j» r© j© j rª j j» r« j9 X INTEGERr¬ r j© j r® j jÈ r¯ j X
r° r± hj¸ r² j© j r³ hj» r´ j X rµ r¶ j© j r· j j» r¸ j9 X INTEGERr¹ rº j© j r» j jÈ r¼ j X r½ r¾ hX BEGINr¿ rÀ j jÈ rÁ j X r rà hX toprÄ rÅ j X rÆ rÇ hkX :=rÈ rÉ j j» rÊ j jõ rË j© j rÌ j X rÍ rÎ j X! (* open arrays are zero offset *)rÏ rÐ j jÈ rÑ j X rÒ rÓ hX bottomrÔ rÕ j j» rÖ hkX :=r× rØ j j» rÙ j9 X VALrÚ rÛ j© jv rÜ j9 X INTEGERrÝ rÞ j© j rß hX array_lenrà rá j© j¡ râ j j» rã hkjÜ rä j j» rå j jY ræ j© j rç j X
rè ré j X rê rë hX WHILErì rí j j» rî hX toprï rð j j» rñ hkj rò j j» ró hX bottomrô rõ j j» rö hX DOr÷ rø j X
rù rú j X
rû rü hX lastfliprý rþ j j» rÿ hkX :=r r j j» r hX topr r j© j r j X
r r j X
r r hX FORr
r j j» r hj¸ r
j j» r hkX :=r r j j» r hX topr r j j» r hX TOr r j j» r hX bottomr r hkjÜ r j jY r j j» r hX DOr r j jÈ r j X
r r! hX IFr" r# j j» r$ hjy r% j© jW r& hj¸ r' j© j_ r( j j» r) hkj¶ r* j j» r+ hjy r, j© jW r- hj¸ r. hkjL r/ j jY r0 j© j_ r1 j j» r2 hX THENr3 r4 j X r5 r6 j X
(* flip *)r7 r8 j jÈ r9 j X r: r; hX rtempr< r= j X r> r? hkX :=r@ rA j j» rB hjy rC j© jW rD hj¸ rE j© j_ rF j© j rG j jÈ rH j X rI rJ hjy rK j© jW rL hj¸ rM j© j_ rN j X rO rP hkX :=rQ rR j j» rS hjy rT j© jW rU hj¸ rV hkjL rW j jY rX j© j_ rY j© j rZ j jÈ r[ j X r\ r] hjy r^ j© jW r_ hj¸ r` hkjL ra j jY rb j© j_ rc j j» rd hkX :=re rf j j» rg hX rtemprh ri j© j rj j jÈ rk j X rl rm hX lastfliprn ro j j» rp hkX :=rq rr j j» rs hj¸ rt j© j ru j jÈ rv j X
rw rx hX ENDry rz j© j r{ j jÈ r| j X
r} r~ hX ENDr r j© j r j X
r r j X
r r
hX bottomr r j j» r hkX :=r r j j» r hX lastflipr r j© j r j X
r r j X
r r hX IFr r j j» r hX bottomr r j j» r hkj¶ r j j» r hX topr r j j» r hX THENr r j X
r r¡ j X
r¢ r£ hj¸ r¤ j j» r¥ hkX :=r¦ r§ j j» r¨ hX bottomr© rª j j» r« hkjÜ r¬ j j» r j jY r® j© j r¯ j jÈ r° j X
r± r² hX FORr³ r´ j j» rµ hj» r¶ j j» r· hkX :=r¸ r¹ j j» rº hX topr» r¼ j j» r½ hX TOr¾ r¿ j j» rÀ hX bottomrÁ r hkjÜ rà j jY rÄ j j» rÅ hX DOrÆ rÇ j jÈ rÈ j X rÉ rÊ hX IFrË rÌ j j» rÍ hjy rÎ j© jW rÏ hj¸ rÐ j© j_ rÑ j j» rÒ hkj¶ rÓ j j» rÔ hjy rÕ j© jW rÖ hj¸ r× hkjL rØ j jY rÙ j© j_ rÚ j j» rÛ hX THENrÜ rÝ j X rÞ rß j X
(* flip *)rà rá j jÈ râ j X rã rä hX rtemprå ræ j X rç rè hkX :=ré rê j j» rë hjy rì j© jW rí hj¸ rî j© j_ rï j© j rð j jÈ rñ j X rò ró hjy rô j© jW rõ hj¸ rö j© j_ r÷ j X rø rù hkX :=rú rû j j» rü hjy rý j© jW rþ hj¸ rÿ hkjL r j jY r j© j_ r j© j r j jÈ r j X r r hjy r j© jW r hj¸ r hkjL r
j jY r j© j_ r j j» r
hkX :=r r j j» r hX rtempr r j© j r j jÈ r j X r r hX lastflipr r j j» r hkX :=r r j j» r hj¸ r j© j r j jÈ r j X r r! hX ENDr" r# j© j r$ j jÈ r% j X r& r' hj¸ r( j j» r) hkX :=r* r+ j j» r, hj¸ r- j j» r. hkjÜ r/ j j» r0 j jY r1 j© j r2 j jÈ r3 j X
r4 r5 hX ENDr6 r7 j© j r8 j X
r9 r: j X
r; r< hX topr= r> j j» r? hkX :=r@ rA j j» rB hX lastfliprC rD j j» rE hkjL rF j j» rG j jY rH j© j rI j X
rJ rK j X
rL rM hX ELSErN rO j jÈ rP j X
rQ rR j X (* force a loop failure *)rS rT j jÈ rU j X
rV rW hX toprX rY j j» rZ hkX :=r[ r\ j j» r] hX bottomr^ r_ j j» r` hkjL ra j j» rb j jY rc j© j rd j jÈ re j X
rf rg hX ENDrh ri j© j rj j X
rk rl j X rm rn hX ENDro rp j© j rq j X
rr rs j X rt ru hX ENDrv rw j j» rx hX RealBSortry rz j© j r{ j X
r| r} j X r~ r j X; (* ----------------------------------------------------- *)r r j jÈ r j X r r hX PROCEDUREr
r j j» r hX TopoSortr r j© jv r j j» r hjy r j© j r j j» r hX yr r j j» r j© j r hX ARRAYr r j j» r hX OFr r j j» r j9 X CARDINALr r j© j r j j» r hX n_pairsr r j j» r j© j r j9 X CARDINALr¡ r¢ j© j r£ j jÈ r¤ j X r¥ r¦ hX VARr§ r¨ j j» r© hX solutionrª r« j j» r¬ j© j r hX ARRAYr® r¯ j j» r° hX OFr± r² j j» r³ j9 X CARDINALr´ rµ j© j r¶ j j» r· hX VARr¸ r¹ j j» rº hX
n_solutionr» r¼ j j» r½ j© j r¾ j9 X CARDINALr¿ rÀ j© j rÁ j jÈ r j X rà rÄ hX VARrÅ rÆ j j» rÇ hX errorrÈ rÉ j© j rÊ j j» rË hX sortedrÌ rÍ j j» rÎ j© j rÏ j9 X BOOLEANrÐ rÑ j j» rÒ j© j¡ rÓ j© j rÔ j jÈ rÕ j X rÖ r× j X (*
This procedure needs some garbage collection added, i've tried but
will little success. J. Andrea, Dec.18/91
*)rØ rÙ j X
rÚ rÛ j X rÜ rÝ hX TYPErÞ rß j jÈ rà j X rá râ hX LPtrrã rä e(j j» rå hkjè ræ j j» rç hX POINTERrè ré j j» rê hX TOrë rì j j» rí hX Leaderrî rï j© j rð j jÈ rñ j X rò ró hX TPtrrô rõ j j» rö hkjè r÷ j j» rø hX POINTERrù rú j j» rû hX TOrü rý j j» rþ hX Trailerrÿ r j© j r j X
r r j X r r hX Leaderr r j j» r hkjè r j j» r
hX RECORDr r j jÈ r
j X r r hX keyr r j X r r j© j r j9 X CARDINALr r j© j r j jÈ r j X r r hX countr r j j» r j© j r j9 X INTEGERr r j© j r! j jÈ r" j X r# r$ hX trailr% r& j j» r' j© j r( hX TPtrr) r* j© j r+ j jÈ r, j X r- r. hX nextr/ r0 j X r1 r2 j© j r3 hX LPtrr4 r5 j© j r6 j jÈ r7 j X r8 r9 hX ENDr: r; j© j r< j X
r= r> j X r? r@ hX TrailerrA rB j j» rC hkjè rD j j» rE hX RECORDrF rG j jÈ rH j X rI rJ hX idrK rL j X rM rN j© j rO hX LPtrrP rQ j© j rR j jÈ rS j X rT rU hX nextrV rW j j» rX j© j rY hX TPtrrZ r[ j© j r\ j jÈ r] j X r^ r_ hX ENDr` ra j© j rb j X
rc rd j X re rf hX VARrg rh j jÈ ri j X rj rk hX prl rm j© j rn j j» ro hX qrp rq j© j rr j j» rs hX headrt ru j© j rv j j» rw hX tailrx ry j j» rz j© j r{ hX LPtrr| r} j© j r~ j jÈ r j X r r hX tr r j X r r
j© j r hX TPtrr r j© j r j jÈ r j X r r hj¸ r j© j r j j» r hX
max_solutionsr r j j» r j© j r j9 X CARDINALr r j© j r j X
r r j X r r j X2 (* -------------------------------------------- *)r r j jÈ r j X r r hX PROCEDUREr r¡ j j» r¢ hX Findr£ r¤ j© jv r¥ j j» r¦ hX wr§ r¨ j j» r© j© j rª j9 X CARDINALr« r¬ j j» r j© j¡ r® j j» r¯ j© j r° hX LPtrr± r² j© j r³ j jÈ r´ j X rµ r¶ hX VARr· r¸ j j» r¹ hX hrº r» j j» r¼ j© j r½ hX LPtrr¾ r¿ j© j rÀ j jÈ rÁ j X r rà hX BEGINrÄ rÅ j jÈ rÆ j X rÇ rÈ hjº rÉ j j» rÊ hkX :=rË rÌ j j» rÍ hX headrÎ rÏ j© j rÐ j X rÑ rÒ hX tailrÓ rÔ hkX ^rÕ rÖ j© X .r× rØ hX keyrÙ rÚ j j» rÛ hkX :=rÜ rÝ j j» rÞ hj§ rß j© j rà j X rá râ j X (* sentinel *)rã rä j jÈ rå j X ræ rç hX WHILErè ré j j» rê hjº rë hkjÕ rì j© j× rí hX keyrî rï j j» rð hkX #rñ rò j j» ró hj§ rô j j» rõ hX DOrö r÷ j jÈ rø j X rù rú hjº rû j j» rü hkX :=rý rþ j j» rÿ hjº r hkjÕ r j© j× r hX nextr r j© j r j jÈ r j X r r hX ENDr r
j© j r j jÈ r j X r
r hX IFr r j j» r hjº r j j» r hkjè r j j» r hX tailr r j j» r hX THENr r j jÈ r j X
r r hX NEWr r j© jv r j j» r! hX tailr" r# j j» r$ j© j¡ r% j© j r& j jÈ r' j X
r( r) hj# r* j j» r+ hkX :=r, r- j j» r. hj# r/ j j» r0 hkjL r1 j j» r2 j jY r3 j© j r4 j jÈ r5 j X
r6 r7 hjº r8 hkjÕ r9 j© j× r: hX countr; r< j j» r= hkX :=r> r? j j» r@ j jõ rA j© j rB j jÈ rC j X
rD rE hjº rF hkjÕ rG j© j× rH hX trailrI rJ j j» rK hkX :=rL rM j j» rN j9 X NILrO rP j© j rQ j jÈ rR j X
rS rT hjº rU hkjÕ rV j© j× rW hX nextrX rY j X rZ r[ hkX :=r\ r] j j» r^ hX tailr_ r` j© j ra j jÈ rb j X rc rd hX ENDre rf j© j rg j jÈ rh j X ri rj hX RETURNrk rl j j» rm hjº rn j© j ro j jÈ rp j X rq rr hX ENDrs rt j j» ru hX Findrv rw j© j rx j X
ry rz j X r{ r| hX BEGINr} r~ j X
r r j X r r hX errorr r j X r
r hkX :=r r j j» r j9 X FALSEr r j© j r j jÈ r j X r r hX
n_solutionr r j j» r hkX :=r r j j» r j jõ r j© j r j X
r r j X r r hX IFr r j j» r hX n_pairsr r j j» r¡ hkj r¢ j j» r£ j jñ r¤ j j» r¥ hX THENr¦ r§ j jÈ r¨ j X
r© rª hX errorr« r¬ j j» r hkX :=r® r¯ j j» r° j9 X TRUEr± r² j© j r³ j jÈ r´ j X rµ r¶ hX ELSEr· r¸ j X
r¹ rº j X
r» r¼ hX
max_solutionsr½ r¾ j j» r¿ hkX :=rÀ rÁ j j» r j9 X HIGHrà rÄ j© jv rÅ j j» rÆ hX solutionrÇ rÈ j j» rÉ j© j¡ rÊ j j» rË hkjL rÌ j j» rÍ j jY rÎ j© j rÏ j X
rÐ rÑ j X
rÒ rÓ hX NEWrÔ rÕ j© jv rÖ j j» r× hX headrØ rÙ j j» rÚ j© j¡ rÛ j© j rÜ j X rÝ rÞ hX tailrß rà j j» rá hkX :=râ rã j j» rä hX headrå ræ j© j rç j X rè ré hj# rê j j» rë hkX :=rì rí j j» rî j jõ rï j© j rð j X
rñ rò j X
ró rô j X (* add all of the given pairs *)rõ rö j X
r÷ rø j X
rù rú hX FORrû rü j j» rý hj¸ rþ j j» rÿ hkX :=r r j j» r j jõ r j j» r hX TOr r j j» r hX n_pairsr r j j» r
hkjÜ r j j» r j jY r
j j» r hX DOr r j jÈ r j X r r hjl r j j» r hkX :=r r j j» r hX Findr r j© jv r j j» r hjy r j© jW r hj¸ r j© j_ r j j» r! j© j¡ r" j© j r# j X r$ r% hjp r& j j» r' hkX :=r( r) j j» r* hX Findr+ r, j© jv r- j j» r. hj r/ j© jW r0 hj¸ r1 j© j_ r2 j j» r3 j© j¡ r4 j© j r5 j jÈ r6 j X r7 r8 hX NEWr9 r: j© jv r; hj r< j© j¡ r= j© j r> j jÈ r? j X r@ rA hj rB hkjÕ rC j© j× rD hX idrE rF j X rG rH hkX :=rI rJ j j» rK hjp rL j© j rM j jÈ rN j X rO rP hj rQ hkjÕ rR j© j× rS hX nextrT rU j X rV rW hkX :=rX rY j j» rZ hjl r[ hkjÕ r\ j© j× r] hX trailr^ r_ j© j r` j jÈ ra j X rb rc hjl rd hkjÕ re j© j× rf hX trailrg rh j j» ri hkX :=rj rk j j» rl hj rm j© j rn j jÈ ro j X rp rq hjp rr hkjÕ rs j© j× rt hX countru rv j j» rw hkX :=rx ry j j» rz hjp r{ hkjÕ r| j© j× r} hX countr~ r j j» r hkjL r j j» r j jY r j© j r j jÈ r
j X
r r hX ENDr r j© j r j X
r r j X
r r j X- (* search for leaders without predecessors *)r r j X
r r j X r r hjl r j j» r hkX :=r r j j» r hX headr r j© j r j X r r hX headr r j j» r¡ hkX :=r¢ r£ j j» r¤ j9 X NILr¥ r¦ j© j r§ j jÈ r¨ j X r© rª hX WHILEr« r¬ j j» r hjl r® j j» r¯ hkjñ r° j j» r± hX tailr² r³ j j» r´ hX DOrµ r¶ j jÈ r· j X r¸ r¹ hjp rº j j» r» hkX :=r¼ r½ j j» r¾ hjl r¿ j© j rÀ j X rÁ r hjl rà j j» rÄ hkX :=rÅ rÆ j j» rÇ hjp rÈ hkjÕ rÉ j© j× rÊ hX nextrË rÌ j© j rÍ j jÈ rÎ j X rÏ rÐ hX IFrÑ rÒ j j» rÓ hjp rÔ hkjÕ rÕ j© j× rÖ hX countr× rØ j j» rÙ hkjè rÚ j j» rÛ j jõ rÜ j j» rÝ hX THENrÞ rß j jÈ rà j X rá râ j X (* insert q^ in new chain *)rã rä j jÈ rå j X ræ rç hjp rè hkjÕ ré j© j× rê hX nextrë rì j j» rí hkX :=rî rï j j» rð hX headrñ rò j© j ró j X rô rõ hX headrö r÷ j j» rø hkX :=rù rú j j» rû hjp rü j© j rý j jÈ rþ j X rÿ r hX ENDr r j© j r j jÈ r j X
r r hX ENDr r j© j r j X
r
r j X
r r
j X (* output phase *)r r j X
r r j X
r r hjp r j j» r hkX :=r r j j» r hX headr r j© j r j jÈ r j X
r r hX WHILEr r j j» r! j© jv r" j j» r# hX NOTr$ r% j j» r& hX errorr' r( j j» r) j© j¡ r* j j» r+ hkX &r, r- j j» r. j© jv r/ j j» r0 hjp r1 j j» r2 hkjñ r3 j j» r4 j9 X NILr5 r6 j j» r7 j© j¡ r8 j j» r9 hX DOr: r; j jÈ r< j X r= r> hX
n_solutionr? r@ j j» rA hkX :=rB rC j j» rD hX
n_solutionrE rF j j» rG hkjL rH j j» rI j jY rJ j© j rK j jÈ rL j X rM rN hX IFrO rP j j» rQ hX
n_solutionrR rS j j» rT hkj¶ rU j j» rV hX
max_solutionsrW rX j j» rY hX THENrZ r[ j jÈ r\ j X r] r^ hX errorr_ r` j j» ra hkX :=rb rc j j» rd j9 X TRUEre rf j© j rg j jÈ rh j X ri rj hX ELSErk rl j X
rm rn j X ro rp hX solutionrq rr j© jW rs hX
n_solutionrt ru hkjÜ rv j jY rw j© j_ rx j j» ry hkX :=rz r{ j j» r| hjp r} hkjÕ r~ j© j× r hX keyr r j© j r j jÈ r j X r r
hj# r j j» r hkX :=r r j j» r hj# r j j» r hkjÜ r j j» r j jY r j© j r j jÈ r j X r r hj r j j» r hkX :=r r j j» r hjp r hkjÕ r j© j× r hX trailr r j© j r j X r r hjp r¡ j j» r¢ hkX :=r£ r¤ j j» r¥ hjp r¦ hkjÕ r§ j© j× r¨ hX nextr© rª j© j r« j jÈ r¬ j X r r® hX WHILEr¯ r° j j» r± hj r² j j» r³ hkjñ r´ j j» rµ j9 X NILr¶ r· j j» r¸ hX DOr¹ rº j jÈ r» j X r¼ r½ hjl r¾ j j» r¿ hkX :=rÀ rÁ j j» r hj rà hkjÕ rÄ j© j× rÅ hX idrÆ rÇ j© j rÈ j X rÉ rÊ hjl rË hkjÕ rÌ j© j× rÍ hX countrÎ rÏ j j» rÐ hkX :=rÑ rÒ j j» rÓ hjl rÔ hkjÕ rÕ j© j× rÖ hX countr× rØ j j» rÙ hkjÜ rÚ j j» rÛ j jY rÜ j© j rÝ j jÈ rÞ j X rß rà hX IFrá râ j j» rã hjl rä hkjÕ rå j© j× ræ hX countrç rè j j» ré hkjè rê j j» rë j jõ rì j j» rí hX THENrî rï j jÈ rð j X rñ rò j X (* insert p^ in leader list *)ró rô j jÈ rõ j X rö r÷ hjl rø hkjÕ rù j© j× rú hX nextrû rü j j» rý hkX :=rþ rÿ j j» r hjp r j© j r j X r r hjp r j j» r hkX :=r r j j» r hjl r
j© j r j jÈ r j X r
r hX ENDr r j© j r j jÈ r j X r r hj r j j» r hkX :=r r j j» r hj r hkjÕ r j© j× r hX nextr r j© j r j jÈ r j X r! r" hX ENDr# r$ j© j r% j jÈ r& j X r' r( hX ENDr) r* j© j r+ j jÈ r, j X
r- r. hX ENDr/ r0 j© j r1 j X
r2 r3 j X
r4 r5 hX IFr6 r7 j j» r8 hj# r9 j j» r: hkjñ r; j j» r< j jõ r= j j» r> hX THENr? r@ j jÈ rA j X rB rC hX sortedrD rE j j» rF hkX :=rG rH j j» rI j9 X FALSErJ rK j© j rL j jÈ rM j X
rN rO hX ELSErP rQ j jÈ rR j X rS rT hX sortedrU rV j j» rW hkX :=rX rY j j» rZ j9 X TRUEr[ r\ j© j r] j jÈ r^ j X
r_ r` hX ENDra rb j© j rc j X
rd re j X rf rg hX ENDrh ri j© j rj j X
rk rl j X rm rn hX ENDro rp j j» rq hX TopoSortrr rs j© j rt j X
ru rv hX BEGINrw rx j jÈ ry hX ENDrz r{ j j» r| hX Sortingr} r~ j© j× r j jÈ r e.