Wrap Words FIXED 終了

Wrap Words FIXED が終了した。

C

nai さんの解。いゃ〜、これは、尋常じゃないな。圧倒的な差を感じる。だいたい、atoi() の空呼びなんて、だれが、gets() の前に atoi() を呼ぶなんて思いつけるんだろう。想像の域を絶している。まぁ、さすがに、はじめからこういう形ではなかったんだろうけど。お見事、というより、どう動いているんだか、まだ、よく理解できていない。index() の !n も、これ、初回は、s から 1 を探しているんだろうな。よく、SEGV 起こさず、1 が見つかるもんだ。(6/16追記:nai さんの日記に詳しい説明があった。1 は見つからず、index() は 0 を返す。確かに。main() の第二引数の指す先は、文字列へのポインターの配列だから、たいてい、そういうことになるな。)

Groovy

murky-satyr さんの解。

(x,y)='AB'

とやると、x='A'、y='B' となる。Factorization Corrected でも使われていた。これって、前からあったかなぁ?これ、左辺は Syntax としてはどう解釈されるんだろう。……… 調べてみた。"Multiple Assignment" というのか。そのまんまの名前だ。Groovy 1.6 からだった。http://groovy.codehaus.org/Statements に説明があった。

早速追記

RE のなかで、${} が使える。

/(.{0,${x+--y}})\s/

なぜだ?RE's のシンタックスとかち合わないのか?また、クラスはなんだんだろう、って思って調べてみたら、以下の通りだった。

print('a1c'.class)     //==> java.lang.String
print("a1c".class)     //==> java.lang.String
print('a${1}c'.class)  //==> java.lang.String
print("a${1}c".class)  //==> org.codehaus.groovy.runtime.GStringImpl
print(/a1c/.class)     //==> java.lang.String
print(/a${1}c/.class)  //==> org.codehaus.groovy.runtime.GStringImpl

/abc/ というのは、Regular Expression ではなく、ただの String なのか。そして、/.../でも、"..." でも、"${...}" を含めば GString なんだな。(クラス名として、GString ではなく、GStringImpl と出るところが、ちょっとかっこ悪い。なぜ、ユーザーにインプリクラスが見えてしまうのか。)
ところで、上の例を試していて変なことに気がついた。Groovy Console で、単に、

/a1c/.class

を実行すると、java.lang.String と表示されるが、

/a1c/.class

のように、'/' の前に改行があると、compilation error: unexpected char '/' at line: 2, column: 1 となる。なんでだろう。怪しい動き。

〜〜〜

Zigzag

次の Zigzag 。いまいち盛り上がりにかけている。実は私の出題でした。中途半端にめんどくさいのが良くなかったかな。

box in box

こちらも、まだ、盛り上がっていない(こちらは私の出題ではありません)。まずは、JavaScript でやってみた。当初 190B 台だったのが、157B まで縮んだ。長めの面倒な式の分、結構縮むな。そろそろ限界っぽいので、他の言語に展開するか。