[R34A]FizzBuzz 游戏 - 代码源竞赛平台
时空限制
1S/512M
题目描述
给定一个长度为 n 的整数数组 a 和两个正整数 X,Y。你需要对数组 a 中的每个数字 ai 进行一次转换。转换规则如下:
- 如果 ai 同时是 X 和 Y 的倍数,则该数字被替换为字符串
FizzBuzz。
- 如果 ai 仅是 X 的倍数(而不是 Y 的倍数),则该数字被替换为字符串
Fizz。
- 如果 ai 仅是 Y 的倍数(而不是 X 的倍数),则该数字被替换为字符串
Buzz。
- 其他情况下,数字 ai 保持不变。
你的任务是,在对整个数组完成转换后,统计最终的数组中所有生成的字符串(Fizz, Buzz, FizzBuzz)里,字符 z 一共出现了多少次。
格式
输入格式
第一行包含三个正整数 n,X,Y,分别表示数组的长度以及两个除数。
第二行包含 n 个整数 a1,a2,…,an,表示数组 a 的值。
输出格式
输出一个整数,表示最终数组中字符 z 的总数量。
样例
样例输入 #1
5 2 3
1 2 3 6 7
样例输出 #1
8
样例解释 #1
初始数组为 [1, 2, 3, 6, 7],X=2,Y=3。
- a1=1: 不被 2 或 3 整除,保持不变。
- a2=2: 是 2 的倍数,变为
Fizz。
- a3=3: 是 3 的倍数,变为
Buzz。
- a4=6: 同时是 2 和 3 的倍数,变为
FizzBuzz。
- a5=7: 不被 2 或 3 整除,保持不变。
转换后的数组状态为 [1, "Fizz", "Buzz", "FizzBuzz", 7]。
统计字符 z 的数量为:
Fizz 中有 2 个 z。
Buzz 中有 2 个 z。
FizzBuzz 中有 4 个 z。
总数量为 2+2+4=8。
数据规模
对于 100% 的数据,1≤n≤105, 1≤X,Y≤109, 1≤ai≤109。