問題一覧 > 通常問題

No.595 登山

レベル : / 実行時間制限 : 1ケース 1.500秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 84
作問者 : ei1333333 / テスター : はむこ
18 ProblemId : 1591 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2017-11-07 19:18:49

問題文

N 個の地点 1,2,,N が順番に直線上に並んでいて, 地点 i の標高は Hi です。

うしは現在, 地点 1 にいます。うしは地点 1 以外の N1 個の全ての地点を 1 回以上訪問したいと考えています。 終了地点はどこでも構いません。

うしは以下の 2 種類の操作を, 何度でも行うことができます。

  • 隣接する地点に移動する。うしは登山が苦手なので, 現在の地点 i から隣接する地点 j に移動するときエネルギー max(0,HjHi) を消費する。
  • ワープして好きな地点に移動する。ワープ 1 回につきエネルギー P を消費する。

このとき, 全ての地点を訪問するための最小エネルギーを求めてください。

入力

N P
H1 H2  HN 

1 行目に, 地点の数 N(2N200 000), ワープ 1 回のエネルギーの消費量 P(0P109) が空白区切りで与えられます。

2 行目に, N 個の整数が空白区切りで与えられます。i 番目の整数 Hi(0Hi109) は地点 i の標高を意味します。

出力

1 行に, うしが全ての地点を訪問するための最小エネルギーを出力してください。

サンプル

サンプル1
入力
6 3
1 1 10 10 100 100
出力
3

例えば, 地点 1 から地点 6 にエネルギー 3 を消費してワープします。その後地点 5,4,3,2 の順で移動します。

サンプル 2
入力
6 5
100 1 3 0 10 100
出力
7

例えば, 地点 1,2,3 の順に移動し, 地点 3 から地点 6 にワープをします。その後地点 5,4 の順で移動します。

地点 2 から 3 への移動時にエネルギー 2, 地点 3 から 6 へのワープ時でエネルギー 5 を消費するので, 合計 7 となります。

サンプル 3
入力
10 1000000000
0 1000000000 0 1000000000 0 1000000000 0 1000000000 0 1000000000
出力
5000000000

答えが 32bit 整数型に収まらないことがあるので注意してください。

サンプル 4
入力
4 0
0 1000000000 0 1000000000
出力
0

全ての地点をワープして訪れればよいです。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。