anarchy golf のサーバが速くなった?
C で黄金比を 500 桁計算する 135 byte のプログラム
a[505],i,j,k; main(c){ for(;i<499;printf(i++?"%d":"1.6",--a[i])) for(c=0;c<125;) for(a[i]++,j=i+6;j--;) for(c/=10,k=j;~k;)c+=a[k]*a[j-k--]; }
が、以前は時間切れで不合格だったのだけど、さっき試したら 0.3 秒ほどで終了して投稿できた。
最適化オプションが変わったという可能性もあるか。
それでも時間切れになってしまう anarchy golf - print file 用 Erlang プログラム
コマンド pg を利用するチート版。1 問目は time out にならないが 2 問目は time out になる。
-module(p). -export([m/0]). m()->io:format(os:cmd("pg "++io:get_line(''))).
真面目にやった場合。両方 time out。
-module(p). -export([m/0]). m()->{_,X}=file:read_file(io:get_line('')--"\n"),io:format(X).
何がよくないのだろう。
追記: 原因は io:format/1 の使い方が間違っているせい。2 問目は出力に '~ ' が含まれているので、io:format/1 の引数にすると '~ ' を解釈しようとしてエラーになる。1 問目非チートの方は、file:read_file で得られるファイルの中身はバイナリなので、文字列が渡されるべき io:format/1 の引数にバイナリを渡すことになりエラーになる(バージョン依存。手元の R11B-5 では渡せる)。フォーマット文字列以外のものを io:format のフォーマット用の引数に渡すなということですね。