電力グリッドのリソースコスト
前書き
ボードゲームPower Gridでは、ゲームの不可欠な部分は、発電所に燃料を供給するためにリソースを購入する行為です。ゲームで使用されるリソースには4つのタイプがあります(再生可能エネルギーを含めると5つですが、明らかにそのためのリソースを購入することはできません)。これらは、石炭、石油、ごみ、およびウランです。リソース市場は次のようになります。
1---- | 2---- | 3---- | 4---- | 5---- | 6---- | 7---- | 8---- | 10 | 12
CCC | CCC | CCC | CCC | CCC | CCC | CCC | CCC | U | U
OOO U | OOO U | OOO U | OOO U | OOO U | OOO U | OOO U | OOO U | 14 | 16
GGG | GGG | GGG | GGG | GGG | GGG | GGG | GGG | U | U
リソースが購入されると、それらは市場の左側から取得され、そこで最も安くなります。新しいリソースが市場に追加されると、右から追加されます。ご覧のように、これは需要と供給のバランスを生み出します。特定の種類のリソースが、各ラウンドで補充されるよりも多く購入されている場合、そのリソースの価格は上昇します。同様に、それが少ない場合、コストが削減されます。
石炭、石油、ごみはすべて同じ割合でコストが増加しますが、ウランははるかに速く増加します。非ウラン資源コストの単一ユニット8 - floor((<units available> - 1) / 3)。ウランの単一ユニットは、13 - <units available>5つ以上のユニットが利用可能な場合に費用がかかり18 - (2 * <units available>)ます。
たとえば、ゲームの開始時には、24ユニットすべての石炭を購入できます。最初のプレイヤーが4ユニットの石炭を購入したい場合、最初の3ユニットのコストはそれぞれ1で、4番目のユニットのコストは2で、合計コストは5です。これにより、20ユニットが使用可能になります。2番目のプレイヤーも4ユニットの石炭を購入したい場合、コストは(2 * 2 + 2 * 3)= 10になります。
チャレンジ
あなたの課題は、特定のリソースの特定の量を購入するコストを計算するプログラムまたは関数を作成することです。そのリソースの特定の量が市場に存在すると仮定します。
提出物は、合理的な入力形式で、任意の順序で、次のパラメーターを受け入れる必要があります。
- リソースタイプ-[C、O、G、U]のいずれかであることが保証されています。
- 市場に存在するそのリソースの量-非負の整数であることが保証されています。リソースタイプがUでない場合、24より大きくなりません。リソースタイプがUである場合、12より大きくなりません。
- プレーヤーが購入したいリソースの量-市場に既に存在する量以下の負でない整数であることが保証されています。
出力は、要求されたリソースのコストである必要があります。
追加の規則
- 与えられた式は、説明のみを目的としており、お好きなコストを計算する方法を自由に使用してください。
- さまざまなリソースタイプ(C、O、G、U)の文字コードは、小文字の同等のものに置き換えることができます。フォーム
C=0, O=1, G=2, U=3またはのいずれかで、数字の文字を置き換えることもできますC=1, O=2, G=3, U=4。 - これはcode-golfであるため、バイト単位の最小の提出が勝者になります。
- 前のセクションで指定したものとは異なる順序または形式で入力する必要がある場合は、詳細を提供する必要があります。
テストケース
テストケースの形式:
resource type, amount in market, amount to buy
> result
テストケース:
C, 24, 4
> 5
C, 20, 4
> 10
O, 3, 3
> 24
U, 1, 1
> 16
C, 1, 1
> 8
G, 0, 0
> 0
O, 10, 7
> 44
U, 12, 4
> 10
G, 11, 4
> 22
f(G, 11, 4) = 22とf(O, 10, 7) = 44。

f("O",1,5)ますか、それとも次のようなものを処理する必要がありますか?