Nemo #5608(2008/01/31 16:16 GMT) [ PostScript ] Rating0/0=0.00
あいかわらず汚ないコードです。PostScript のカバレッジ稼ぎ。 ソートを記録して逆順に出力しているだけです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
%!PS /Data (352401) def /MaxStringLength 100 def /Log [] def /Append { % String1 String2 Append NewString / Depend on MaxStringLength exch MaxStringLength string dup dup 0 5 -1 roll dup length 4 1 roll putinterval 4 -1 roll dup length 2 index add 4 1 roll putinterval 0 exch getinterval } def /Swap { % String/Array N0 N1 Swap - 2 copy % String N0 N1 N0 N1 4 index exch get % exch 4 index exch get exch % String N0 N1 V0 V1 4 index 4 -2 roll put put } def /Sort { /AmidaData exch def /InitialData AmidaData 100 string copy def /N AmidaData length def 0 1 N 1 sub { /Line () def /Change false def dup dup 2 mod 0 ne { /Line Line (| ) Append def } if 2 mod 2 N 2 sub { dup AmidaData exch 2 getinterval dup 0 get exch 1 get gt { AmidaData exch dup 1 add Swap /Line Line (|-| ) Append def /Change true def } { pop /Line Line (| | ) Append def } ifelse } for N sub 2 mod 0 ne {(|)}{()} ifelse Line exch Append /Line exch def Change { /Log [ Log aload pop Line ] def } if } for 0 1 InitialData length 1 sub { InitialData exch 1 getinterval print ( ) print } for () = Log { = } forall 0 1 AmidaData length 1 sub { AmidaData exch 1 getinterval print ( ) print } for () = } def Data Sort
Rating0/0=0.00-0+
[ reply ]
Nemo
#5608()
[
PostScript
]
Rating0/0=0.00
%!PS /Data (352401) def /MaxStringLength 100 def /Log [] def /Append { % String1 String2 Append NewString / Depend on MaxStringLength exch MaxStringLength string dup dup 0 5 -1 roll dup length 4 1 roll putinterval 4 -1 roll dup length 2 index add 4 1 roll putinterval 0 exch getinterval } def /Swap { % String/Array N0 N1 Swap - 2 copy % String N0 N1 N0 N1 4 index exch get % exch 4 index exch get exch % String N0 N1 V0 V1 4 index 4 -2 roll put put } def /Sort { /AmidaData exch def /InitialData AmidaData 100 string copy def /N AmidaData length def 0 1 N 1 sub { /Line () def /Change false def dup dup 2 mod 0 ne { /Line Line (| ) Append def } if 2 mod 2 N 2 sub { dup AmidaData exch 2 getinterval dup 0 get exch 1 get gt { AmidaData exch dup 1 add Swap /Line Line (|-| ) Append def /Change true def } { pop /Line Line (| | ) Append def } ifelse } for N sub 2 mod 0 ne {(|)}{()} ifelse Line exch Append /Line exch def Change { /Log [ Log aload pop Line ] def } if } for 0 1 InitialData length 1 sub { InitialData exch 1 getinterval print ( ) print } for () = Log { = } forall 0 1 AmidaData length 1 sub { AmidaData exch 1 getinterval print ( ) print } for () = } def Data SortRating0/0=0.00-0+
[ reply ]