[R80B] 发糖果
- 难度 入门
- 时限 1s
- 空限 512m
- 数学
数据规模
,,保证答案存在。总量 最大约为 ,超出 32 位整数范围,需要用 64 位整数保存。
思路
算出全场应发的总量。 若没有同学缺席,按计划编号为 的同学应得 颗糖,总量为
用实际发出的量做差。 实际发出去的 颗糖,恰好是总量减去缺席同学那 颗,多出的部分就是缺席同学的编号:
题目保证答案存在,因此差值必然落在 内,直接输出即可,无需额外判断。
复杂度
时间与空间均为 ,只涉及一次读入和一次整数运算。
仓颉实现
查看仓颉实现
import std.env.*
import std.convert.*
main() {
let reader = getStdIn()
let parts = reader.readln().getOrThrow().split(" ", removeEmpty: true).map({ p: String => Int64.parse(p) })
let n = parts[0]
let s = parts[1]
println(n * (n + 1) / 2 - s)
}