#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 后剩下的余数;34mod1034 \mod 10 是 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”。