Squares Fixed

Squares Fixed 終了。この問題は、入力の1行が、出力の2行に影響を及ぼすパターンで、難しい問題だった。C / JavaScript ともトップに大差を付けられて惨敗。途中から、縮められる気がしなくなってしまって、手がつかなくなった。ゴルフもこのくらいのレベルの問題になると、また、違った難しさがある気がする。今アクティブな Borderizing Texts も同様だが、とりあえず答えは作れるが、条件分岐が多すぎて、それをコンパクトにまとめるために全体を把握するのが難しい。。。脳が退化してるな。

C

not さんの解。gets() と putchar()の2重ループでうまくまとめた理路整然としたコード。さすがです。この形までになかなかたどり着けない。
このコードはちょっといじったら、129B まで縮めることができた。この最後の「パター」に相当する詰めの部分と、その元の形を作り上げる部分は、やっぱり別々な能力だと思う。

JavaScript

xulapp さんの解。入力行を倍長にするのに、split() で文字の配列にしたものを、再度文字列化することで実現している。つまり、

0+"  .  ".split('')
↓
"0 , ,., , "

のようにする。カンマ(',')が入ってくるが、欲しいのはピリオドかどうかだけなので問題無い。あと、

s+=/\./(a[~-i]+a[-~i])?'|':/\./(a[i]+b[i])?'_':' '

この部分もすっきりとまとまっていてとてもきれいだ。見事です。
〜〜〜
さて、そのほかの問題としては、quickly submit が、だいぶブーイングが飛んでいたようだが終わった。この問題は、単に 1 を出力するというもの。全問題中で一番単純な問題と言えるだろう。単純な問題なので、Minus / Whitespace / Whirl に挑戦してみた。Minus や Whitespace は(この程度の問題なら)そんなに難しくはない。しかしながら、Whirl は大変だ。1 を出力するくらいならまだ何とかできたが、Print ERROR となると、まず、'E' の文字コードを作るだけで、もう、プログラミングが厭になってしまうほど面倒。hello world を見ると Whirl のトップは、580B だ。大変さがうかがえる。