Description
众所周知,邓老师在西邮有众多的应援团,其中邓老师西邮应援团东区分团和邓老师西邮应援团西区分团是主要的两个应援团,但是这两个应援团谁都看不上对面,都觉得自己才是邓老师唯一的应援团,觉得对方是黑粉,有一天,这两个应援团的粉丝们又在粉丝群吵起来了,邓老师实在受不了了,他提出了一个方案:让双方都派出一个人互相做一个游戏,谁输了,谁就是黑粉。
这个游戏的内容是这样的:有 nn 个石子,每个人都只能从中取出一个石子,特别的是,如果石子的总数是偶数,那么当前取石子的人可以取两个石子(当然,也可以只取一个石子),最后,如果有人取走了最后的石子,那么他就赢了。邓老师非常的聪明,他的粉丝们虽然不如邓老师,但是也可以在这场游戏中尽量选择有利于自己的方法。对于邓老师来说,它可以轻易的判断谁才是黑粉,但是他现在要去学习嵌入式,所以你现在需要帮邓老师判断一下谁才是黑粉。
Input
第一行有一个正整数 T(1\leq T\leq 100000)T(1≤T≤100000) ,表示这个题一共有 TT 组数据;
接下来 TT 行每一行都有一个正整数 n(1\leq n\leq 10^{15})n(1≤n≤1015) 和一个字符E或者W,E表示这组游戏中东区的粉丝为先手,W表示这组游戏中西区的粉丝为先手,这个整数和字符用空格隔开。
Output
对于每一个测试用例,输出包含一段字符串,如果这组游戏中东区的粉丝胜利了,那么你需要输出一行”west is anti-fan”,否则输出一行”east isanti-fan”,结果不带双引号。
Sample Input 1
9 8 W 2 E 5000 W 9494 E 114514 W 810975 E 1 W 1 E 1000000000000000 ESample Output 1
east is anti-fan west is anti-fan east is anti-fan west is anti-fan east is anti-fan east is anti-fan east is anti-fan west is anti-fan west is anti-fan
题目分析:共n个石子,若n为奇数,只能拿走一个,若n为偶数,可以拿走一个或两个,最后拿走的胜。
n=1, 先手拿走一个,为必胜态,
n=2,先手可以拿走两个,为必胜态,
n=3,先手只能拿走一个,对方拿走两个,所以先手必败,
n=4,先手拿走一个,对方只能拿走一个,先手再拿走两个,所以先手必胜
综上,n=1,先手必胜,n=2时,先手必胜,n>2 时,n为奇数时,只能转移到 n-1 的状态,先手必败,n为偶数时,可以转移到 n-1 和 n-2 的状态,为了自己利益最大化,转移到 n-1 状态,所以先手胜。
注:
注意多组输入,一个输入对应一个输出,而不是输入所有数据,输出所有对应结果。
AC代码如下:
#include<stdio.h>
long long int n[100000];
char a[100000];
int main()
{
int T;
scanf("%d", &T);
int i=0;
while(T--)
{
scanf("%lld %c", &n[i], &a[i]);
if (n[i] == 1)
{
if (a[i] == 'W') printf("east is anti-fan\n");
else if (a[i] == 'E') printf("west is anti-fan\n");
}
else
{
if (n[i] % 2 == 0)
{
if (a[i] == 'W')
printf("east is anti-fan\n");
else if (a[i] == 'E') printf("west is anti-fan\n");
}
else
{
if (a[i] == 'W')
printf("west is anti-fan\n");
else if (a[i] == 'E') printf("east is anti-fan\n");
}
}
}
return 0;
}