カメヲラボ

主にプログラミングとお勉強全般について書いてます

Basic Wall Maze

  • 本気でcheat(1)

ところで、putsを使って単純に答え書き出すだけのコードが本当に331バイトまでしか縮まないのか。もちろん、答えはノーだ。
問題をコードをSubmitする前に確認しておかなければならないことがある。それは、"Special Judged"と書かれているかどうか。Special Judgedというのは、解答のパターンが複数ある問題等でよく行われる。文字通り特別なJudgeだ。これは迷路の問題だから、Judgeプログラムはきっと出力データを読み込んで、スタートからゴールまでちゃんとたどり着けるかを調べるもののはずだ。そんなプログラムを作る側のことを考えてみてほしい。我々ショートコーダーはgetsを多用するが、普通のプログラマは無難にscanfを使う。改行コードや空白のスキップが簡単に出来るからだ。

もしJudgeプログラムでscanfを使っているのであれば、読み込む際に文字列の区切りを空白にしようが改行にしようが無視される。それなら\nの代わりに空白でも通るのではないか?

というわけで、文字列の区切りを空白にしてみたところ、それでもAcceptされることがわかった。これだけで、331-27=304バイトまで短縮することが出来る。

しかし私は、そんなヘタレコードでは我慢できない。もっと短く。もっと短く!!!