显示代码纯文本
#include<cstdio>
#include<iostream>
using namespace std;
long long f[1111]={};
bool kj[1111]={};
bool kk[1111]={};
int n;
void getsum()
{
for(int i=1;i<=n;i++)
kk[i]=kj[i];
}
void gg(int a)
{
if(a>n)
{
int sum=0;
for(int i=1;i<=n;i++)
if(kj[i])
sum++;
if(sum>0)
{
long long temp=0;
for(int i=1;i<=n;i++)
if(kj[i])
temp^=f[i];
if(temp==0)
getsum();
}
}
else
kj[a]=1,gg(a+1),kj[a]=0,gg(a+1);
}
int main()
{
freopen("asm_contribute.in","r",stdin);
freopen("asm_contribute.out","w",stdout);
cin>>n;
for(int i=1;i<=n;i++)
cin>>f[i];
int ans=0;
gg(1);
for(int i=1;i<=n;i++)
if(kk[i])
ans++;
cout<<ans<<endl;
for(int i=1;i<=n;i++)
if(kk[i])
cout<<i<<" ";
cout<<endl;
}