#4718. [USACO 1.2.1] Your Ride Is Here
[USACO 1.2.1] Your Ride Is Here
Your Ride Is Here
众所周知,每一颗好彗星的背后都有一艘 UFO。这些 UFO 常来地球收集忠诚的支持者。不幸的是,它们每次只能接走一组追随者。不过,它们会通过一个巧妙的方案提前告知各组人,哪些人将被每颗彗星接走:它们会为彗星取一个名字,这个名字连同该组人的名字,可以用来确定是否轮到该组人离开(你觉得是谁给彗星命名的?)。匹配方案的细节如下,你的任务是编写一个程序,输入一组人的名字和一颗彗星的名字,然后确定这组人是否应该跟在那颗彗星后面的 UFO 离开。
将小组的名字和彗星的名字都转换成一个数字,方法如下:最终的数字就是名字中所有字母的乘积,其中 “A” 是 1,“Z” 是 26。例如,小组 “USACO” 将是 21×19×1×3×15 = 17955。如果小组的数字模 47 与彗星的数字模 47 相同,那么你需要告诉小组做好准备!(记住 “a mod b” 是 a 除以 b 后剩下的余数; 是 4。)
编写一个程序,读取彗星的名字和小组的名字,根据上述方案判断名字是否匹配,如果匹配则打印 “GO”,否则打印 “STAY”。小组和彗星的名字都是一串大写字母,没有空格或标点符号,最多 6 个字符长。
示例:
输入 | 输出 |
---|---|
COMETQ HVNGAT |
GO |
ABSTAR USACO |
STAY |
输入格式
- 第 1 行: 一个长度为 1..6 的大写字符字符串,是彗星的名字。
- 第 2 行: 一个长度为 1..6 的大写字符字符串,是小组的名字。
注意:输入文件每行末尾都有一个换行符,但没有 “回车”。有时,程序员会按照 Windows 的范式编写代码,即 “回车” 后跟 “换行”;不要这样做!使用简单的输入例程,如 Pascal 的 “readln” 和 C/C++ 的 “fscanf” 以及 “fid>>string”。
注意 2:由于额外的字符,请确保为换行符(也表示为 “\n”)和字符串结束字符(“\0”,如果你的语言使用它,如 C 和 C++)留出足够的空间。这意味着你需要为 8 个字符留出空间,而不是 6 个。
示例输入(文件 ride.in)
COMETQ
HVNGAT
输出格式
包含单词 “GO” 或 “STAY” 的单行。
示例输出(文件 ride.out)
GO
输出说明
将字母转换为数字:
C |
O |
M |
E |
T |
Q |
|
3 |
15 |
13 |
5 |
20 |
17 |
|
H |
V |
N |
G |
A |
T |
|
8 |
22 |
14 |
7 |
1 |
20 |
然后计算乘积模 47:
3 * 15 * 13 * 5 * 20 * 17 = 994500 mod 47 = 27 8 * 22 * 14 * 7 * 1 * 20 = 344960 mod 47 = 27
因为两个乘积模 47 后都等于 27,所以任务是 “GO”。