显示代码纯文本
#include<stdio.h>
int vis[1001];
int n;
int a[1001];
int search(int k)
{
if(k==0)
{
return 1;
}
for(int i=1;i<=n;i++)
if(!vis[i])
{
vis[i]=1;
if(search(k^a[i])==1) return 1;
vis[i]=0;
}
return 0;
}
int main()
{
freopen("asm_contribute.in","r",stdin);
freopen("asm_contribute.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
for(int i=1;i<=n;i++)
{
vis[i]=1;
if(search(a[i])==1)
{
int ans=0;
for(int i=1;i<=n;i++)
if(vis[i]==1) ans++;
printf("%d\n",ans);
for(int i=1;i<=n;i++)
if(vis[i]==1) printf("%d ",i);
return 0;
}
vis[i]=0;
}
}