Soroban Fixed 他

Soroban Fixedが公開になった。

C

nai さんに、137B で追いつかれたとき、確か stats が一致していたので、136Bも似たコードかと思っていたら、結構違っていてびっくり。
私が、144B から 137B まで縮めるきっかけになったのは、行カウンターを 0 や 1 から開始していたのを、9 からカウントダウンするように変えたこと。こうすると、1 行目、4 行目、10 行目のはじき方が、

i%9%6       // 9..0 カウントダウン
i%3|i==6    // 0..9 カウントアップ

と簡潔になり、調子が良い。てっきり他の人も、9 からのカウントダウンかと思っていたのだが、そうしている人はいなかった。なお、他の要素もあって一概には言えないが、暗黙の 0 初期化からカウントアップするループと明示的な初期化からカウントダウンするループは以下の通りコストは同等だ。

i=9;main(){for(;i--;);}
i;main(){for(;i++<9;);}

さて、トップnai さんの解。まず、gets() の位置がうまいな。こうすると、p の初期化が一箇所にできる。そして、行カウントを 1 から step 2 で行うことで、

line  : 0  1  2  3  4  5  6  7  8  9
i     : 1  3  5  7  9 11 13 15 17 19
133%i : 0  1  3  0  7  1  3 13 14  0

か。よくこんな式思いつくな。すごい。
そして、極めつけは、

 --*p%5

あらら、インプットを破壊してる。すごい。こうすることで、どの行も、剰余が 2 かどうかで判断できるのか。とはいえ、133%i が true のケースはそんなにコストを稼いではいないみたいだな。っていうか、いちばん稼いでいるのは、

k++%4*7-i

か?私の解にこれを応用すると、133B が出来ちゃった。

追記

さらに縮まり、131B。っていうか、だれも、strlen()なんか使っていなかった。

さらに追記

nai さんによる 130B。また、やってしまった。for 文の初期化の場所に、式が、"スポッ" と入ると、なんか、短い気がしてしまうんだよなぁ。

Triangle@C

inaniwa さんが圧倒的な差をつけて 92B トップ。見ると、要素要素は私の解と似てるんだけどな。for 文一重化は私は出来ず断念したのに対し、見事に実現されている。さすが。

その他

Sokoban は、3番目のビットを落とすだけ。ちょっと、単純すぎたか。sudoku は逆に難しすぎ。手に負えなかった。
さらに、今、アクティブな問題のなかでも、TotientPuyo PuyoHangul resyllabificationは、ちょっと、お手上げだ。