[R58A] 读小说

  • 难度 入门
  • 时限 1s
  • 空限 512m
  • 数学

数据规模:1A,B,X1031 \le A, B, X \le 10^3AXA \le X

思路

第一天读完 AA 页后,还剩下 XAX - A 页。从第二天起每天读 BB 页,最后一天不足 BB 页也会全部读完,因此剩下的页数需要 (XA)/B\lceil (X - A) / B \rceil 天。

总天数:

1+XAB=1+XA+B1B1 + \left\lceil \frac{X - A}{B} \right\rceil = 1 + \left\lfloor \frac{X - A + B - 1}{B} \right\rfloor

X=AX = A 时,剩余页数为 00,上式仍正确(答案为 11 天)。

复杂度:时间 O(1)O(1),空间 O(1)O(1)

仓颉实现

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

main(): Int64 {
    let reader = getStdIn()
    let s = reader.readln().getOrThrow().split(" ", removeEmpty: true).map({ p: String => Int64.parse(p) })
    let X = s[0]
    let A = s[1]
    let B = s[2]
    let rest = X - A
    println(1 + (rest + B - 1) / B)
    return 0
}