問題

問題は下記の通りです。チェックプログラムに通る作品ができましたら、ログインしてマイページからご応募ください。

作品受付は終了しました。多数のご応募ありがとうございました。

問題とルール

問題

ここは街の小さなお菓子屋さん。大人気の「気まぐれシカクッキー」を、今日もオーブンフル稼働で焼いています。

オーブンをうまく活用して、様々な大きさのクッキーを手際よく、たくさん焼いてください。

がんばれ!街のお菓子屋さん

ルール

オーブンについて

オーブンは正方形で表現されていて、20×20のグリッドで表現されます。

後述するクッキー生地をこのグリッド単位で配置します。

クッキーについて

オーブンにクッキー生地を配置して焼いていきます。

焼きあがったクッキーは自動的にオーブンから取り出されます。この時スコアが加算されます。

  • クッキー生地は矩形で表現されます。色々な縦横サイズ(整数)のクッキー生地が存在します。
  • 正方形のオーブンに収まる範囲内にクッキー生地を配置することができます。
  • 既に配置されているクッキー生地と重なる位置にクッキー生地を配置することはできません。
  • 焼きあがるまでの時間は「ターン」と呼ばれる単位で管理します。クッキー生地によって焼きあがるターン数は異なります。
  • クッキーが焼きあがった時に加算されるスコアもクッキーによって異なります。

生地置き場について

生地置き場とは、まだ焼かれていないクッキー生地の置き場所です。焼きたいクッキー生地はここから取り出します。

  • 生地置き場には常に8個のクッキー生地が入っています。
  • ここからクッキー生地を取り出すと、新たにクッキー生地が補充されます。
  • 小さいクッキー生地の入った「生地置き場A」と、大きいクッキー生地の入った「生地置き場B」が存在します。

1ステージの流れ

1ステージにつき、1000ターンの処理を行えます。

ステージ開始時、オーブン内にクッキー生地は存在しません。

1ターン毎に以下の処理を行うことができます。

生地置き場からクッキー生地を取り出し、オーブンに配置する
生地置き場Aまたは生地置き場Bから1つクッキー生地を取り出し、オーブンに配置できます。
各生地置き場内の任意のクッキー生地を取り出すことができます。
オーブン内の配置可能な任意の位置に、クッキー生地を配置できます。
オーブンにクッキー生地を配置できるのは、1ターンに1回だけです。
何もせずに待機
オーブンがクッキー生地で埋まっていて、新たにクッキー生地を配置できない場合は、待機を選択してください。

1000ターンが経過すれば、そのステージは終了となり、次のステージに進みます。

全てのステージで獲得したスコアの合計が、最終的な評価となります。

ビューア

問題パッケージには、作品の挙動を確認できるビューアも含まれています。ビューアはwebブラウザで動作します。

ビューア

選考基準

スコアと処理時間

ステージを規定回数繰り返し、ステージ毎のスコアの総和を競います。

スコアが多いほど上位となります。

スコアが同じ場合は、処理時間が短い作品から上位とします。

スコアも処理時間も同じ場合は、先に応募された作品から上位とします。

サーバの評価環境について

サーバの評価環境は、配布パッケージと基本的に同一です。

ただし、乱数のシード値は配布パッケージと異なるものが使用され、また乱数の算出方法も異なります。

手元でいくつかの乱数シードを試すなど、安定した作品を目指すことをおすすめします。

詳しくは問題パッケージに含まれているREADME.txtをご覧ください。

問題パッケージのダウンロード

下のボタンで問題パッケージのダウンロードページへ進んでください。

問題パッケージに含まれるファイルの詳細については、問題パッケージダウンロードページで確認していただけます。

作品規定

  • オリジナルのプログラムに限ります。
  • 使用可能な言語はC++です。※C++11が使えます。
    ただし、以下の機能は使用できません。
    • インラインアセンブラ
    • 例外(try,catch,throw 等)
  • 標準ライブラリが使えます。適宜、必要なファイルをインクルードして使用してください。
  • マルチスレッド、マルチプロセスは禁止とします。
  • #pragma は使用できません。
  • 巨大な応募作品はエラーとなることがあります。
  • 問題パッケージでは制限時間はありませんが、評価環境での制限時間は60秒です。
  • 応募前に必ずPC上で実行して、チェックが通ることを確認してください。
  • 特定のステージに依存したチューニングを行うことを禁止します。例えば、X番目のステージの時は、あらかじめ用意した配列に基づいて行動を決定するというような処理は禁止とします。
  • 応募作品は応募時に自動チェックされますが、後ほど実行委員会が直接チェックする場合があります。たとえチェックが通っていても、不適切と認められる場合は無効と判定されることがありますのでご了承ください。
  • 応募作品のチェックはハル研究所オリジナルの評価環境で行いますが、 問題パッケージに含まれるものと同一のチェックプログラムでのチェックとなります。ただし、評価環境では別の乱数のシード値で評価が行われますのでご注意ください。
  • std::random_deviceを使うと、実行時エラーになります。