[R16A] 总分

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

数据规模:0a,b,c1060 \le a, b, c \le 10^6

思路

及格、良好、优秀的分数范围分别是 607960 \sim 79808980 \sim 899010090 \sim 100。总分最大时每类科目都取最高分,即 79a+89b+100c79a + 89b + 100c;最小时每类都取最低分,即 60a+80b+90c60a + 80b + 90c

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

仓颉实现

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

main(): Int64 {
    let reader = getStdIn()
    let abc = reader.readln().getOrThrow().split(" ", removeEmpty: true).map({ p => Int64.parse(p) })
    let mx = abc[0] * 79 + abc[1] * 89 + abc[2] * 100
    let mn = abc[0] * 60 + abc[1] * 80 + abc[2] * 90
    let out = StringBuilder()
    out.append(mx)
    out.append(" ")
    out.append(mn)
    println(out.toString())
    return 0
}

要点:

  • 最大值和最小值互不影响,各自独立计算后一起输出。
  • 数值上限约 3×1083 \times 10^8Int64 足够。