[R24A]停车费用

  • 难度 入门
  • 时限 1s
  • 空限 512m
  • 模拟

数据规模:1T,ai1041 \le T, a_i \le 10^41A<B1041 \le A < B \le 10^4

思路

按停车时长 TT 分三段计费:

  • TAT \le A,全部落入第一档,固定收费 a1a_1 元。
  • A<TBA < T \le B,前 AA 小时收 a1a_1 元,超出 AA 小时的部分共 (TA)(T - A) 小时按每小时 a2a_2 元收费。
  • T>BT > B,前 AA 小时收 a1a_1 元,中间 AABB(BA)(B - A) 小时按每小时 a2a_2 元收费,超出 BB 的部分共 (TB)(T - B) 小时按每小时 a3a_3 元收费。

直接按 TTA,BA, B 的大小关系套用对应公式即可。

复杂度

时间 O(1)O(1),空间 O(1)O(1)

仓颉实现

import std.env.*
import std.convert.*

main(): Int64 {
    let reader = getStdIn()
    let line = reader.readln().getOrThrow().split(" ", removeEmpty: true).map({ p: String => Int64.parse(p) })
    let A = line[0]
    let B = line[1]
    let T = line[2]
    let a1 = line[3]
    let a2 = line[4]
    let a3 = line[5]

    var ans: Int64 = 0
    if (T <= A) {
        ans = a1
    } else if (T <= B) {
        ans = a1 + (T - A) * a2
    } else {
        ans = a1 + (B - A) * a2 + (T - B) * a3
    }
    println(ans.toString())
    return 0
}