#cs1. 变量魔法师的交换咒语
变量魔法师的交换咒语
变量魔法师的交换咒语
题目描述
变量魔法师小 C 有三个整型变量 x、y、z。
现在他拿到了一串咒语卡片,每张卡片都会让这三个变量发生一次变化。咒语共有三种:
A:交换x和y的值,然后令z = z + 1B:交换y和z的值,然后令x = x + 2C:交换z和x的值,然后令y = y + 3
请你按照咒语串从左到右依次执行所有操作,输出最终三个变量的值,以及这三个变量中的最大值。
输入格式
第一行输入一个整数 ,表示咒语卡片的数量。
第二行输入三个整数 ,表示三个变量的初始值。
第三行输入一个长度为 的字符串 ,字符串只包含
A、B、C,表示咒语串。
输出格式
第一行输出三个整数,表示所有咒语执行结束后 x、y、z 的值。
第二行输出一个整数,表示最终三个变量中的最大值。
样例
6
1 2 3
ABCCBA
1 6 11
11
样例解释
初始时:
依次执行咒语:
- 执行
A后,交换x和y,再令z=z+1,得到:
- 执行
B后,交换y和z,再令x=x+2,得到:
- 执行
C后,交换z和x,再令y=y+3,得到:
- 再执行
C后,得到:
- 执行
B后,得到:
- 执行
A后,得到:
因此最终输出为:
其中最大值为:
数据范围
对于所有数据,保证:
的长度恰好为
中只包含字符 A、B、C
并保证运算过程中以及最终答案都在 C++ long long 范围内