1916 - UFO

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

  每一个彗星飞跃地球时都会跟随着一只UFO。这些UFO时常来收集地球上的忠诚支持者。但是,他们的飞碟每次出行都只能带上一组支持者。因此,他们要用一种聪明的方案让这些小组提前知道谁会被彗星带走。他们为每个彗星起了一个名字,通过这些名字来决定这个小组是不是被带走的那个特定的小组(你认为是谁给这些彗星取的名字呢?)。关于如何搭配的细节会在下面告诉你;你的任务是写一个程序,通过小组名和彗星名来决定这个小组是否能被那颗彗星后面的UFO带走。
  小组名和彗星名都以下列方式转换成一个数字:最终的数字就是名字中所有字母的积,其中“A”是1,“Z”是26。例如,“USACO”小组就是21191315=17955。如果小组的数字 mod 47等于彗星的数字mod 47,你就得告诉这个小组需要准备好被带走!(记住“a mod b”是a除以b的余数;34 mod 10等于4)
写出一个程序,读入彗星名和小组名并算出用上面的方案能否将两个名字搭配起来,如果能搭配,就输出“GO”,否则输出“STAY”。小组名和彗星名均是没有空格或标点的一串大写字母(不超过6个字母)。

题目输入

第1行:一个长度为1到6的大写字母串,表示彗星的名字。
第2行:一个长度为1到6的大写字母串,表示队伍的名字。

题目输出

仅一行,包括“GO”或“STAY”。

输入/输出样例

输入格式

COMETQ
HVNGAT

输出格式

GO

C++解答

/*
ID: cjh-1143
PROG: ride
LANG: C++
*/
#include<stdio.h>
#include<string.h>
int main(){
//	freopen("ride.in","r",stdin);
//	freopen("ride.out","w",stdout);
	char s1[10], s2[10];
	int i, x, t;
	while(scanf("%s%s", s1, s2) != EOF){
		for(x = 1, i = 0; s1[i]; i++)
			x *= (s1[i]-'A'+1);
		t = x%47;
		for(x = 1, i = 0; s2[i]; i++)
			x *= (s2[i]-'A'+1);
		if(t == x%47) printf("GO\n");
		else printf("STAY\n");
	}
    return 0;
}
/*
------- test 1 ----
COMETQ
HVNGAT
------- test 2 ----
STARAB
USACO
------- test 3 ----
EARTH
LEFTB
------- test 4 ----
PULSAR
VENUS
------- test 5 ----
KANSAS
UTAH
------- test 6 ----
APPLE
URSA
------- test 7 ----
MSFT
MARS
------- test 8 ----
PLUTO
BKHOLE
------- test 9 ----
COWSBC
RIGHT
------- test 10 ----
DRKMTR
SNIKER
*/