【AtCoder】ABC 465 B - Parking 2
https://atcoder.jp/contests/abc465/tasks/abc465_b
atcoder.jp
実行時間制限: 2 sec / メモリ制限: 1024 MiB / Difficulty: 56 / NoviSteps: 6Q / 配点: 200 点
問題概要
ある駐車場に駐車するときの料金は以下の通りである。
- 時ちょうどから 時ちょうどまでのあいだは、 時間停めるごとに の料金がかかる
- 上に該当しない時間のあいだは、 時間停めるごとに の料金がかかる
この駐車場に、日をまたぐことなく車を 時ちょうどから 時ちょうどまで停めたとき、料金はいくらになるか求めよ。
制約
- 入力される値はすべて整数
考察
駐車時間のうち、1時間当たりの駐車料金が になる時間は、
で計算できる。
また、1時間当たりの駐車料金が になる時間は、駐車時間から上記の時間を除いたものとなる。
以上を適切に計算すればOK。
実装例
CPP
1.#include <bits/stdc++.h>2.using namespace std;3. 4.// ======================================== //5. 6.int main()7.{8. int X, Y, L, R, A, B;9. cin >> X >> Y >> L >> R >> A >> B;10. 11. int time_x = max(0, min(B, R) - max(A, L));12. int time_y = (B - A) - time_x;13. 14. cout << time_x * X + time_y * Y << endl;15. 16. return 0;17.}https://atcoder.jp/contests/abc465/submissions/77174316
atcoder.jp
実装時間: 10分
コメント
制約は整数かつ小さいので、forループで数えていっても構わない。





