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$ 円となる。
注意点
特になし。
別解
特になし。