求助
  • 板块灌水区
  • 楼主Quartz_Blocks
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/4/28 19:03
  • 上次更新2024/4/28 21:10:55
查看原帖
求助
1059176
Quartz_Blocks楼主2024/4/28 19:03

小X和小L很喜欢喝酒,有一天他们在地上把N(1 <= N <= 10^5)个箱子摆成了一个环形,第i个箱子内初始有ai(1 <= ai <= 5 * 10 ^ 6)瓶啤酒。游戏玩法如下:

1.他们两个人总是选择同一个箱子的啤酒喝,两个人轮流喝,每次都是L先喝,两个人在游戏开始时从第一个箱子开始喝。

2.如果当前在喝的箱子中啤酒的数量为0,那么此时轮到的那个人即为失败,也就是谁喝到箱子中的最后一瓶酒就胜利了。否则,轮到的那个人选择一个整数P,P可以是1或者是一个不超过当前箱子中啤酒数量的质数,然后从箱子中拿走P瓶啤酒喝掉。

3.两个人都从一个箱子中拿过啤酒之后,走到下一个箱子前继续喝。也就是说,如果两个人在第i个箱子中都拿过啤酒了,那么就走到第i+1个箱子边上,除非他们在房间N,在这种情况下他们会移动到房间1。

当两个人都采用最优策略时,问谁能赢得游戏的胜利

输入格式

从文件 drink.in 中读入数据

输入包含T个子测试用例。输入的第一行包含T(1 <= T <= 1000)。下面时T个子测试用例。

每个子测试用例的第一行包含N,第二行包含a1,a2,...an。

输入保证所有N之和不超过2 * 10 ^ 5。

输出格式

输出到文件 drink.out 中

对于每一个子测试用例,输出游戏的胜者

输入样例

5
1
4
1
9
2
2 3
2
7 10
3
4 9 4

输出样例

X
L
L
L
X

限制

时间限制:1000 ms

内存限制:65536 KB

说明/提示

测试点2~4 满足N = 1

测试点1,2,5,~7 满足ai <= 1000

测试点8 ~ 20 没有额外限制

2024/4/28 19:03
加载中...