#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"。

解题思路

  1. 根据输入的分数 ​X​,确定当前的等级。
  2. 对应每个等级,根据需要的最小分数计算到下一个等级所需的额外分数。
  3. 如果当前等级已经是 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),只使用了常数空间存储输入和计算结果。