先把石堆排序,取出最大的石堆maxi.

由于小紫的操作是机械的,小红的操作是唯一的变量.

那么可以知道,如果小红要取最优策略,她一定想要有更多的主动权,即想要在游戏结束前有更多的轮数,所以最优解策略只会在最后去拿最大堆maxi, 那么小紫唯一可能赢的情况是在第n轮小紫拿走了maxi的最后一个石子

那么小红可以行动的次数最多为maxi-1

只要在maxi-1轮内让除了最大堆以外的所有石子堆为0就可以获胜

注意到:小紫可能会在maxi-1轮内移除一些堆,具体的来说,最多会移除所有小于等于maxi-1的堆。

那么小红只需要在maxi-1次行动中移除堆中石子数量等于maxi的堆就好了,这就是胜利判据。

python解:

t = int(input())
for _ in range(t):
    n = int(input())
    heaps = list(map(int,input().split()))
    heaps.sort()
    maxi = heaps[-1]
    i = n-2
    count = 0
    while i>=0:
        if heaps[i]==maxi:
            count +=1
            i-=1
        else:
            break
    if count<=maxi-1:
        print('red')
    else:
        print('purple')