#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define N 25
#define M 10010
using namespace std;
int a[N];
int ssgg[N];
int t,n;
int sg(int x)
{
if(x==n)return 0;
if(ssgg[x]!=-1)return ssgg[x];
int v[M];
memset(v,0,sizeof(v));
for(int i=x+1;i<=n;i++)
{
for(int j=i;j<=n;j++)
{
v[sg(i)^sg(j)]=1;
}
}
for(int i=0;;i++)if(!v[i])return ssgg[x]=i;
}
int ai,bi,ci;
int main()
{
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
memset(ssgg,-1,sizeof(ssgg));
int tmp=sg(1);ssgg[n]=0;
int cnt=0;
for(int i=1;i<=n;i++)
{
if(a[i]!=0)
{
for(int j=i+1;j<=n;j++)
{
for(int k=j;k<=n;k++)
{
a[i]--,a[j]++,a[k]++;
int ans=0;
for(int l=1;l<=n;l++)
{
if(a[l]&1)
ans^=ssgg[l];
}
if(ans==0)
{
cnt++;
if(cnt==1)
{
printf("%d %d %d\n",i-1,j-1,k-1);
}
}
a[i]++,a[j]--,a[k]--;
}
}
}
}
if(!cnt)printf("-1 -1 -1\n");
printf("%d\n",cnt);
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/wzq_qwq/article/details/47256975