电网资源成本
介绍
在棋盘游戏《电力网格》中,游戏不可或缺的一部分是购买资源为发电厂加油的行为。游戏中使用了四种资源(五种,如果您包括可再生能源,但是显然您不能为此购买资源)。这些是煤炭,石油,垃圾和铀。资源市场如下所示:
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个单位的煤炭,则前三个单位每个要花费1,而第四个单位要花费2,因此总费用为5。这样就剩下20个单位了。如果第二个玩家也想购买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。 - 这是代码高尔夫球,因此最小的提交字节数将是获胜者。
- 如果您提交的内容要求输入的顺序或格式与上一节中指定的格式不同,则应提供详细信息。
测试用例
测试用例格式:
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)?