#10382. A - Rolling Dice 比赛编号219
A - Rolling Dice 比赛编号219
问题描述
在 AtCoder 王国中,有一项标准化的编程能力测试。
考生的成绩是从 0 到 100 分,并根据得分划分等级,具体规则如下:
- Novice:得分大于等于 0 小于 40;
- Intermediate:得分大于等于 40 小于 70;
- Advanced:得分大于等于 70 小于 90;
- Expert:得分大于等于 90。
Takahashi 参加了这个测试并得到了 X 分。
请计算,Takahashi 想要晋升到下一个等级,至少需要多少分。如果他已经是 Expert 等级,则输出 "expert",因为 Expert 是最高等级,没有更高的等级了。
输入格式
输入包含一个整数 X,表示Takahashi的得分(0≤X≤100)。
输出格式
输出一个整数,表示达到下一个等级所需要的最小额外分数。如果已经是 Expert 等级,输出 "expert"。
样例输入 1
56
样例输出 1
14
解释: Takahashi 的得分是 56,他被评为 Intermediate 等级。要升到下一个等级(Advanced),至少需要 14 分。
样例输入 2
32
样例输出 2
8
解释: Takahashi 的得分是 32,他被评为 Novice 等级。要升到下一个等级(Intermediate),至少需要 8 分。
样例输入 3
0
样例输出 3
40
解释: Takahashi 的得分是 0,他被评为 Novice 等级。要升到下一个等级(Intermediate),至少需要 40 分。
样例输入 4
100
样例输出 4
expert
解释: Takahashi 的得分是 100,他已经是 Expert 等级,没有更高的等级了,因此输出 "expert"。
解题思路
- 根据输入的分数 X,确定当前的等级。
- 对应每个等级,根据需要的最小分数计算到下一个等级所需的额外分数。
- 如果当前等级已经是 Expert,则直接输出 "expert"。
等级划分:
- Novice: 0 <= X < 40
- Intermediate: 40 <= X < 70
- Advanced: 70 <= X < 90
- Expert: X >= 90
对于每个等级:
- 如果是 Novice(X < 40),至少需要 40 - X 分才能到达 Intermediate;
- 如果是 Intermediate(X < 70),至少需要 70 - X 分才能到达 Advanced;
- 如果是 Advanced(X < 90),至少需要 90 - X 分才能到达 Expert;
- 如果是 Expert(X >= 90),输出 "expert"。
复杂度分析
- 时间复杂度:O(1)O(1),程序只进行了一次常数时间的比较。
- 空间复杂度:O(1)O(1),只使用了常数空间存储输入和计算结果。