#cs1. 变量魔法师的交换咒语

变量魔法师的交换咒语

变量魔法师的交换咒语

题目描述

变量魔法师小 C 有三个整型变量 xyz

现在他拿到了一串咒语卡片,每张卡片都会让这三个变量发生一次变化。咒语共有三种:

  • A:交换 xy 的值,然后令 z = z + 1
  • B:交换 yz 的值,然后令 x = x + 2
  • C:交换 zx 的值,然后令 y = y + 3

请你按照咒语串从左到右依次执行所有操作,输出最终三个变量的值,以及这三个变量中的最大值。

输入格式

第一行输入一个整数 nn,表示咒语卡片的数量。

第二行输入三个整数 x,y,zx,y,z,表示三个变量的初始值。

第三行输入一个长度为 nn 的字符串 ss,字符串只包含 ABC,表示咒语串。

输出格式

第一行输出三个整数,表示所有咒语执行结束后 xyz 的值。

第二行输出一个整数,表示最终三个变量中的最大值。

样例

6
1 2 3
ABCCBA
1 6 11
11

样例解释

初始时:

x=1, y=2, z=3x=1,\ y=2,\ z=3

依次执行咒语:

  • 执行 A 后,交换 xy,再令 z=z+1,得到:
x=2, y=1, z=4x=2,\ y=1,\ z=4
  • 执行 B 后,交换 yz,再令 x=x+2,得到:
x=4, y=4, z=1x=4,\ y=4,\ z=1
  • 执行 C 后,交换 zx,再令 y=y+3,得到:
x=1, y=7, z=4x=1,\ y=7,\ z=4
  • 再执行 C 后,得到:
x=4, y=10, z=1x=4,\ y=10,\ z=1
  • 执行 B 后,得到:
x=6, y=1, z=10x=6,\ y=1,\ z=10
  • 执行 A 后,得到:
x=1, y=6, z=11x=1,\ y=6,\ z=11

因此最终输出为:

1 6 111\ 6\ 11

其中最大值为:

1111

数据范围

对于所有数据,保证:

1n1000001 \le n \le 100000

109x,y,z109-10^9 \le x,y,z \le 10^9

ss 的长度恰好为 nn

ss 中只包含字符 ABC

并保证运算过程中以及最终答案都在 C++ long long 范围内