ABC465 B - Parking 2

駐車場 2

考え方

少し計算方法がややこしいだけの問題。

ポイントは、$L$ 時から $R$ 時の料金の扱い方。
これを、$X$ 円になると考えず、通常より $X-Y$ 円追加料金(または値引き)が発生すると考える。
すると、とりあえず全体を $Y$ 円であるとして料金計算した後、追加料金や値引きを追加すればよくなる。

まず、基本料金を求める。
これは、$Y$ 円で $B-A$ 時間駐車したのだから、これらの積でよい。

次に、追加料金または値引きを求める。
差分が発生し始めるのは、該当時間内の利用が始まったときなので、$L$ と $A$ の大きい方。
差分が発生し終わるのは、該当時間内の利用が終わったときなので、$R$ と $B$ の小さい方。
後者から前者を引いた値が $0$ より大きければ、それが追加料金または値引きが発生した長さである。
その長さに $X-Y$ をかけた値が、正なら追加料金、負なら値引き分となる。

両者を足し合わせたものが答えとなる。

入力例1での動作

入力を受け取る。

x: 700
y: 300
l: 9
r: 17
a: 7
b: 21

まず、$7$ 時から $21$ 時までの全 $14$ 時間を、$1$ 時間 $300$ 円として計算する。
料金は $300\times(21-7)=4200$ 円となる。

次に、料金が $700$ 円になる時間帯と、実際に駐車している時間帯の重なりを求める。
重なるのは $9$ 時から $17$ 時までなので、長さは $8$ 時間である。

この $8$ 時間については、$1$ 時間ごとに $700-300=400$ 円を追加する。
追加料金は $400\times8=3200$ 円となる。

したがって、料金は $4200+3200=7400$ 円となる。

注意点

特になし。

別解

特になし。