Minecraftの在庫管理は困難です。17個のダイヤモンドがありますが、エンチャントテーブル、つるはし、剣を作るには7個必要です。それらを拾って右クリックを7回しますか?または、右クリックして2回、右クリックして7を左に移動しますか?とても混乱しています!
今混乱しているあなたのために、心配しないで、私はそれをすべてすぐに説明します
チャレンジ
アイテムのスタックのサイズと必要な量を考慮して、その量を得るための最小クリック数を決定します。両方の入力に対して最大64を処理するだけでよく、無限のインベントリスロットがあると仮定できます。ドラッグして配布するトリックは使用できません。
定義
在庫はあなたがアイテムを格納することができ、スロットのコレクションです。
スロットは、あなたがアイテムの1種類にまで置くことができ、あなたのインベントリ内の記憶領域です。
スタックは、同じグループ内に配置された項目の数です。この課題の目的のために、スタックは単に同じ場所にあるアイテムの集まりです(したがって、stack-sizeは無視してください)
カーソルがあなたの先のとがったブツです。そのカーソル。「その上に」アイテムを持つことができます。言い換えれば、スロットをクリックしてアイテムをピックアップした場合、ピックアップしたアイテムは、置くまで「カーソル上」にあります。
仕様書
4つの状況が考えられます。カーソルにアイテムがあるか、カーソルがないか、左クリックまたは右クリックのいずれかです。
カーソル上にアイテムがなく、スロットを左クリックすると、スタック全体が取得されます。
カーソルにアイテムがなく、スロットを右クリックすると、スタックの半分が切り上げられます。
カーソルの上にアイテムがあり、スロットを左クリックすると、すべてのアイテムがそのスロットに配置されます。(すべてのMinecraftプレイヤーは、このチャレンジで64を超えるアイテムを持たず、すべて64スタック可能です。1つのタイプしかないため、アイテムスワップはここでは適用されません)
カーソルの上にアイテムがあり、スロットを右クリックすると、そのスロットに1つのアイテムが配置されます。
そのため、スロットで指定されたすべてのアイテム(最初の入力、または2番目。順序を選択できます)で開始し、目的の量(他の入力)をカーソルに入れて終了します。
例を見てみましょう。17個のアイテムから始めて、7個のアイテムが必要だとします。最初に、スタックを右クリックします。つまり、9個をピックアップし、そのスロットに8個あります。次に、もう一度スタックを右クリックすると、1つのアイテムがスロットに戻され、8と9のスロットが残ります。最後に、もう一度右クリックすると7とスロットが10になります。戻ります3(クリック数)。
あなたがアウトクリックゴルフをすることができたら、私に教えてください、私は例を編集します:P
テストケース
これらは手動で生成されるため、エラーがあるかどうかを教えてください。ジッタークリックで右クリックして在庫管理を行うため、最適な在庫管理の経験がありません:P
Given, Desired -> Output
17, 7 -> 3
64, 8 -> 5
63, 8 -> 5
10, 10 -> 1
10, 0 -> 0 # note this case
25, 17 -> 7
説明
このチャレンジは、Minecraft以外のプレイヤーにとっては難しいかもしれません、私にはわかりません。ここにいくつかの説明があります。
64, 8 -> 5 右クリックを使用して32をピックアップし、それを下に置き、16をピックアップし、8をピックアップします。
63, 8 -> 5 同じ理由で。
25, 17 -> 7 13を拾い、下に置き、残りの12から6を拾い、残りのスタックに2を戻し、カーソルの4を13に置いてから拾います。
ルール
- 標準的な抜け穴が適用されます
- あなたはそれを仮定するかもしれません
0 <= desired <= given <= 64 - どちらの順序で入力しても、妥当な形式でI / Oを実行できます。
0,[n]遷移することができる:(1)から0,[a,b,...]のa,[b,...]、b,[a,...]、ceil(a/2),[floor(a/2),b,...]、またはceil(b/2),[a,floor(b/2),...]; 又は(2)からx,[a,b,...](x>0)までx-1,[a+1,b,...]、x-1,[a,b+1,...]、x-1,[a,b,...,1]、0,[a+x,b,...]、0,[a,b+x,...]、0,[a,b,...,x]。課題は0,[g]、gが指定されているt,L場所tから目的のターゲットLがどこにあるのか、またリストがどこにあるのか、可能な最小の遷移を見つけることです。