atcoder#ARC063B. [ABC047D] 高橋君と見えざる手
[ABC047D] 高橋君と見えざる手
题目描述
個の町が一直線上に並んでいます。行商人の高橋君は町 から出発し、リンゴの売買をしながら町 へと向かいます。
はじめ高橋君は町 におり、リンゴを つも持っていません。高橋君は次のいずれかの行動を繰り返し行います。
- 移動: 町 () にいるとき、町 へ移動する。
- リンゴの売買: リンゴを好きな個数だけ売買する。ここで、町 () ではリンゴの買値も売値もともに 円とする。ここで は相異なる整数です。
つの町で売買するリンゴの個数に制限はありませんが、旅の中で売買するリンゴの個数は合計で (買う個数と売る個数を合わせて) 個以下にしなくてはなりません。
高橋君は旅の利益、すなわちリンゴを売った代金から買った代金を引いた値を最大にするように旅をするとします。旅が終わったときに持っていたリンゴの価値は考えず、旅の中で売買した金額だけを考えます。
この旅に先立って、青木君は任意の町 に対して を好きな非負整数 に変えるという操作を好きなだけ行うことができます。ただし、この操作は行うごとに のコストがかかります。操作後には異なる町の間でリンゴの値段が同じになっていても構いません。
青木君の目的はできるだけ少ない合計コストの操作で高橋君の利益を少なくとも 円下げることです。合計コストの最小値を求めてください。
ただし、元の状態で高橋君が 円以上の利益を上げられることは仮定して構いません。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
高橋君の収益を少なくとも 円下げるために必要な合計コストの最小値を出力せよ。
题目大意
高桥君和不可见之手
问题描述
有 个小镇排在一条直线上。旅行商人高桥君从小镇 出发,一边买卖苹果一边朝小镇 前行。
开始时高桥君处在小镇 ,身上一个苹果也没有。高桥君不断进行以下行动。
- 移动:从小镇 开始,移动到小镇 。
- 买卖苹果:买进或卖出任意个苹果。在小镇 买进或卖出苹果单价都为 円。 为相异的整数。
在每个小镇进行交易的苹果数量没有限制,但是旅行中所买进和卖出的苹果总数(买进苹果数加上卖出苹果数)必须在 以内。高桥君会使自己在旅程中所获利益(卖苹果所得钱数减去买苹果所花钱数)最大。
在高桥君进行旅行之前,青木君可以对于任意 ,使 变为非负整数 。这个操作的代价为 。操作后即使出现相异小镇苹果单价相同的情况也没关系。
青木君的目的是:花费尽量少的代价,使高桥君所得的最大利益至少下降 円。请求出最小代价。
数据保证初始状态下高桥君至少能获得 円的利益。
数据范围
- 相异
- 保证初始状态下高桥君至少能获得 円的利益。
输入
输入按以下标准:
输出
输出使高桥君最大收益至少下降 円的最小代价和。
样例1解释
在初始状态下,高桥君能够进行以下的行动来获得最大收益( 円):
- 从小镇 移动到小镇 。
- 在小镇 处花 円买一个苹果。
- 从小镇 移动到小镇 。
- 在小镇 处卖掉一个苹果获得 円。
举例来说,如果青木君把小镇 的苹果单价从 円上调至 円,高桥君就无法获得 円的收益。也就是说,此操作能够使高桥君的最大收益至少下降 円,所以答案为 。
另外,将小镇 的苹果单价从 円降至 円也能够达到目的。
3 2
100 50 200
1
5 8
50 30 40 10 20
2
10 100
7 10 4 5 9 3 6 8 2 1
2
提示
制約
- ()
- は相異なる
- 入力の状態では高橋君は 円以上の利益を上げられることが保証される
Sample Explanation 1
この入力の状態では、高橋君は次のようにして最大の利益である 円を達成することができます。 1. 町 から町 へ移動する。 2. 町 で 円を支払い、リンゴを 個買う。 3. 町 から町 へ移動する。 4. 町 で 円でリンゴを 個売る。 たとえば、青木君が町 のリンゴの値段を 円から 円に変えると、高橋君はどのようにしても 円の利益を上げることができなくなります。すなわち、コスト で高橋君の利益を少なくとも 円下げることが可能であり、答えは となります。 他にも、町 のリンゴの値段を 円から 円に変えることでもコスト で高橋君の利益を下げることが可能です。