#6823. 使命召唤

使命召唤

使命召唤:特种兵训练积分

题目描述

在《使命召唤》训练模式中,一名特种兵正在进行连续训练任务。

系统会记录每天获得的训练积分。

第1天完成训练任务时,获得:

303 点积分

从第2天开始,由于训练难度提升:

每天获得的基础积分都会比前一天:

增加50点

但是训练系统还有一个特殊奖励规则:

如果当天计算出的积分:

能够被5整除

那么系统会额外奖励:

20点积分

例如:

第2天:

基础积分:

303 + 50 = 353

因为:

353不能被5整除

所以最终积分:

353

第3天:

基础积分:

353 + 50 = 403

因为:

403不能被5整除

所以最终积分:

403

现在给出训练天数 n,请计算:

第 n 天最终获得的积分是多少。

注意:

  • 不需要计算累计积分;
  • 不需要考虑军衔等级;
  • 不需要考虑武器解锁数量;
  • 只需要输出第 n 天的最终积分。

输入格式

输入一个整数:

n

表示训练天数。


输出格式

输出一个整数:

表示第 n 天最终获得的积分。


数据范围

1 ≤ n ≤ 100000

样例输入1

1

样例输出1

303

样例解释

第1天初始积分为:

303

没有增加,也不会触发奖励。


样例输入2

2

样例输出2

353

样例解释

第2天:

基础积分:

303+50=353

因为:

353 % 5 != 0

所以最终:

353

样例输入3

5

样例输出3

503

样例解释

每天计算:

天数 计算过程 是否奖励 最终积分
1 303 303
2 303+50=353 353
3 353+50=403 403
4 403+50=453 453
5 453+50=503 503

所以:

503

但是这个样例仍然没有触发奖励。

为了让学生验证条件,建议增加一个奖励触发样例:


样例输入4

6

样例输出4

573

样例解释

第6天:

基础积分:

503+50=553

553不能被5整除。

所以:

553

(这里仍未触发)


发现这个初值会导致奖励一直不触发,因为:

303 每天 +50:

个位数字永远是:

3

不会出现5的倍数。

因此更合理的设计是:


修改初始值

第1天:

300点积分

每天增加:

53点

奖励:

能被5整除 +20

这样:

天数 基础计算 奖励 最终
1 300 - 300
2 353 353
3 406 406
4 459 459
5 512 512
6 565 +20 585

这样样例:

输入:

6

输出:

585
测试点编号 n <= 特殊性质 设计目的
1 初值 检查 dp[1] = 303 是否直接输出
2, 3 3 连续小值 检查第一次、第二次递推
4, 5 11 小规模相邻值 检查普通递推与相邻输入差值
6 100 百位规模 覆盖正常循环次数
7, 8 1000 千位相邻边界 检查较大普通规模与相邻值
9 50000 大规模 检查较长循环下结果是否仍为线性公式
10 100004 数组安全上界 覆盖程序可安全访问的最大 n