比赛 “Asm.Def战记之拉格朗日点”杯 评测结果 AAAATATATT
题目名称 Asm.Def的微小贡献 最终得分 60
用户昵称 devil 运行时间 16.005 s
代码语言 C++ 内存使用 0.33 MiB
提交时间 2015-11-04 09:40:16
显示代码纯文本
#include <cstdlib>
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <map>
#include <stack>
#include <vector>
#include <map>
#include <queue>
#include <ctime>
#include <algorithm>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef unsigned int uint;
const int inf=1061109567;
const int maxn=1010;
const int maxm=100010;
const int mod=998244353;
const double pi=3.14;

ll a[maxn];
int path[maxn];
int vis[maxn];
int n;

bool dfs(int pos,ll sum,int cnt)
{
    if(pos==n+1)
    {
        if(cnt==0) return false;
        if(sum==0)
        {
            printf("%d\n",cnt);
            for(int i=1;i<=cnt;i++)
                printf("%d ",path[i]);
            printf("\n");return true;
        }
        return false;
    }
    vis[pos]=1;path[cnt+1]=pos;
    if(dfs(pos+1,sum^a[pos],cnt+1)) return true;
    vis[pos]=0;
    if(dfs(pos+1,sum,cnt)) return true;
    return false;
}

int main()
{
    freopen("asm_contribute.in","r",stdin);
    freopen("asm_contribute.out","w",stdout);
    //clock_t st=clock();
    scanf("%d",&n);
    for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
    dfs(1,0,0);
    //clock_t ed=clock();
    //printf("\nTime used : %.5lf Ms\n",double(ed-st)/CLOCKS_PER_SEC);
    return 0;
}