DevQuiz 2011 - 一人ゲーム

解答晒し。やや長いのでpatebin。

http://pastebin.com/9mZBtu1H

  • まず、ロボット的に最短に近い手数を出す。(ruledengine)
    • 奇数かつ5で割り切れる数が1以上なら、取り除く(evalremove5)
    • それ以外は半分
    • 繰り返せば最短に近い手数が出そう
  • ロボットが出した手数まで全探索(walkaroundengine)
    • 単純な2分木探索
  • 取り除かれた数字には-1をいれておくことで、配列のコピーを避ける