ハル研究所 プログラミングコンテスト2016
12月19日、ハル研究所 プログラミングコンテスト2016の結果が発表されました。私の結果は最終総ターン数71,583で47位でした。以下雑多な感想です。
ハル研プロコンへの参加は昨年に続いて2回目です。今年はインターンシップ参加資格のある学年だったので、昨年以上の思いを持って参加していました。
コンテスト
今年の問題は、2次元平面上で宇宙船を操作してすべての小惑星をできるだけ早く(少ないターン数で)消滅させるというものでした。宇宙船は、移動による体当たりと、充填に時間の掛かるレーザーという二つの手段で小惑星を消滅させることができます。
最初はとりあえず全ての小惑星消すことができるプログラムを作ろうと考え、問題を読んですぐにサンプルコードを開いたのですが、すでにそのようなプログラムが書かれていて驚きました。今回のコンテストもハイレベルなようです。この時点での総ターン数は117,509です。
ひとまず落ち着いて、最も近い小惑星に体当たりし、最も遠い小惑星にレーザーを撃つように改良すると、総ターン数は一気に80,000台まで縮まりました。さらに、複数の小惑星をレーザーで同時に撃ち抜けるようにすると、あっという間にチャレンジスコア72,000に迫るターン数を出すことができました。
チャレンジスコアというのは、ハル研プロコンにおいてひとつの目標として定められる数で、これを超えられると記念品の抽選に加わることができます。上位入賞を到底望めない私は、このチャレンジスコア達成を目指していました。
チャレンジスコア達成まであとわずかかと思いきや、ここからスコアは72,000~73,000に停滞。スコアの大幅短縮を狙って探索方法を考えるも、逆にスコアを落としてしまいました。
達成はもう無理かと思っていましたが、最終日までプログラムを弄り続けた結果、ついにチャレンジスコア内に滑り込むことができました。しかもチャレンジスコア賞に当選。嬉しい。
インターンシップ
プログラム応募締め切り後日、インターンシップ参加のご案内をいただくことができました。12月17日、山梨県のハル研究所を訪れ、短い時間ながら貴重な体験をさせていただきました。
カービィ好きでもあるのでハル研究所へ行けたことだけでも嬉しかったです。建物内にはカービィ関連の展示もありましたが、撮影禁止だったので写真には残せず。インターンシップの内容も日記に書かないほうが良いのかな……。