把所有数分为是1的和不是1的,当把所有不是1的数取完后,显然如果1的数量为奇数则先取的赢,否则后取的赢。因此先手有如下必胜策略:
若1的数量为奇数:
依次把每个不是1的数取成1,这样对手只能把这堆取完,这样两人合作把所有不是1的数取完,先手胜。
若1的数量为偶数:
同上,强迫对手与自己合作取完不是1的数直到最后一个不是1的数,先手直接取完这个数,这样后手先取是1的那些数,先手胜。
因此,只有一种情况后手胜,即全为1且1的数量为偶数。
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main(){
int T;
cin>>T;
while(T--){
int N;
scanf("%d",&N);
int on=0;
bool flag=0;
for(int i=1;i<=N;i++){
int t;
scanf("%d",&t);
if(t==1) on++;
else flag=1;
}
if(!flag){
if(on&1) printf("poopi\n");
else printf("piloop\n");
}
else printf("poopi\n");
}
return 0;
}