Problem D: 取石子(六)

"
Time Limit $1$ 秒/Second(s) Memory Limit $512$ 兆字节/Megabyte(s)
提交总数 $452$ 正确数量 $98$
裁判形式 标准裁判/Standard Judge 我的状态 尚未尝试
难度 分类标签 博弈
最近TopCoder的PIAOYI和HRDV很无聊,于是就想了一个游戏,游戏是这样的:有n堆石子,两个人轮流从其中某一堆中任意取走一定的石子,最后不能取的为输家,注意: 每次只能从一堆取任意个,可以取完这堆,但不能不取。假设PIAOYI先取石子,请你帮他判断他是否能赢(假设他们取的过程中不发生失误,他们足够聪明)。
第一行输入n,代表有n组测试数据(n<=1000000)
以下每组测试数据包含两行:第一行:包含一个整数m,代表本组测试数据有m(m<=1000)堆石子;
:第二行:包含m个整数Ai(Ai<=100),分别代表第i堆石子的数量。
若PIAOYI赢输出“PIAOYI”,否则输出“HRDV”注意每组结果占一行。。
3
2
1 1
3
3 8 11
2
5 10
HRDV
HRDV
PIAOYI
用整数的快速读取模板
inline int rd()
{
char ch=getchar();
int x=0,w=1;
//过滤掉其他字符 
while(ch<'0'|| ch>'9') 
{
if(ch=='-') w=-1;
ch=getchar();
}
while(ch>='0' && ch<='9')
{
//代替x=x*10+ch-'0'; 
x=(x<<1) + (x<<3) +(ch^48);
ch=getchar();

return x*w;
}