比赛 “Asm.Def战记之拉格朗日点”杯 评测结果 AAAAAATATT
题目名称 Asm.Def的微小贡献 最终得分 70
用户昵称 WAHT 运行时间 15.013 s
代码语言 C++ 内存使用 0.34 MiB
提交时间 2015-11-04 10:47:53
显示代码纯文本
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<iomanip>
#include<cstdlib>
#include<cmath>
using namespace std;
#define ll long long
ll read()
{
	ll x=0,f=1;
	char ch=getchar();
	while(ch>'9'||ch<'0'){ if(ch=='-') f=-1;ch=getchar();}
	while(ch>='0'&&ch<='9'){ x=x*10+ch-'0';ch=getchar();}
	return x*f;
}

int n;
ll a[1100];
struct my
{
	ll value,node;
}f[1100];
bool cm(my a,my b)
{	return a.value<b.value||(a.value==b.value&&a.node<b.node);}
int q[1100],num;
void dfs(int x,ll now)
{
	if(now==0)
	{	
		cout<<num<<endl;
		for(int i=1;i<=num;i++)
			printf("%d ",q[i]);
		exit (0);
	}
	
	if(x>n) return;
	else
	{
		q[++num]=x;
		dfs(x+1,now^a[x]);
		num--;
		dfs(x+1,now);
	}
	
}
void init()
{
	cin>>n;
	
	for(int i=1;i<=n;i++)
		a[i]=read(),f[i].value=a[i],f[i].node=i;
	sort(f+1,f+1+n,cm);
	for(int i=1;i<n;i++)
		if(f[i].value==f[i+1].value)
		{
			cout<<'2'<<endl;
			cout<<f[i].node<<' '<<f[i+1].node<<endl;
			return;
		}
		
	for(int i=1;i<n;i++)
	{
		q[++num]=i;
		dfs(i+1,a[i]);
		num--;
	}
	
}
int main()
{
	freopen("asm_contribute.in","r",stdin);
	freopen("asm_contribute.out","w",stdout);
	init();
	return 0;
}