GP28512. 神秘转盘

提交4 通过2
通过率50%
文件IO启用
输入文件spin.in
输出文件spin.out
时间限制1000ms
内存限制512MiB
    ID: 14595 传统题 文件IO 输入文件:spin.in 输出文件:spin.out 1000ms 512MiB 尝试: 4 已通过: 2 难度: 入门 上传者: 标签>模拟

题目描述

题目描述

一个密码转盘上按顺时针顺序排列着 36 个符号:大写字母 A 至 Z,随后是数字 0 至 9。依次将它们的位置编号为 0 至 35,因此位置 0 是 A,位置 26 是 0。

初始时,指针指向位置 0。给定一串指令,按顺序执行。每条指令的效果如下:

  • +:指针顺时针移动 1 个位置。如果当前位置是 35,则移动后回到位置 0;
  • -:指针逆时针移动 1 个位置。如果当前位置是 0,则移动后到达位置 35;
  • *:设当前指针所在位置为 pp,先计算 p×pp\times p。如果结果大于 35,就不断减去 36,直到结果在 0 至 35 之间,指针移动到这个位置;
  • #:指针顺时针移动 5 个位置。如果移动时超过位置 35,就从位置 0 继续向后移动。

请输出执行完所有指令后,指针指向的符号。

输入格式

从文件 spin.in 中读取数据。

输入一行,包含一个非空字符串,仅由 +、-、*、# 组成,表示依次执行的指令。

输出格式

输出到文件 spin.out 中。

输出一个字符,表示最终指向的符号。

样例

+#*
A
+++---
A

样例解释

样例 #1 解释

初始位置为 0。执行 + 后到达位置 1,执行 # 后到达位置 6。

执行 * 时,先计算 6×6=366\times6=36。由于位置编号只有 0 至 35,将 36 减去 36 后得到 0,因此指针回到位置 0,最终指向 A。

数据规模与约定

本题采用子任务捆绑计分。每个子任务内的所有测试点均通过,才能获得该子任务的分数。

子任务 分值 特殊限制
1 30 指令仅包含 + 和 -,长度不超过 100
2 指令长度不超过 100
3 40 指令长度不超过 1000

所有测试点均保证指令字符串非空,且仅包含 +、-、*、#。

下发文件

下载三组测试数据,非真实测试数据