记录编号 204435 评测结果 AAAATATATT
题目名称 [SYOI 2015] Asm.Def的微小贡献 最终得分 60
用户昵称 GravatarWINAPI 是否通过 未通过
代码语言 C++ 运行时间 16.005 s
提交时间 2015-11-04 12:19:29 内存使用 0.32 MiB
显示代码纯文本
  1. #include<cstdio>
  2. #include<stack>
  3. using namespace std;
  4. long long a[1001];
  5. int vis[1001]={0};
  6. long long sum=0;
  7. int ok=0;
  8. int tot=0;
  9. stack<long long> s,q;
  10. int dfs(int k, int n)
  11. {
  12. for(int i=k+1;i<=n;i++)
  13. { if(ok==1) return 0;
  14. if(!vis[i])
  15. {
  16. long long he=sum;
  17. sum^=a[i];
  18. // printf("%d\n",sum);
  19. vis[i]=1;
  20. if(sum==0)
  21. {s.push(i);ok=1;return 0;}
  22. else
  23. {
  24. s.push(i);tot++;
  25. dfs(i,n);
  26. if(ok==1) return 0;
  27. s.pop();
  28. vis[i]=0;
  29. sum=he;
  30. }
  31. }
  32. }
  33. }
  34.  
  35.  
  36.  
  37. int main()
  38. {
  39. int n;
  40. freopen("asm_contribute.in","r",stdin);
  41. freopen("asm_contribute.out","w",stdout);
  42. scanf("%d",&n);
  43. for(int i=1;i<=n;i++)
  44. scanf("%lld",&a[i]);
  45. dfs(0,n);
  46. // printf("%d\n",tot);
  47. printf("%d\n",s.size());
  48. while(s.size())
  49. {
  50. long long u=s.top();
  51. s.pop();
  52. q.push(u);
  53. }
  54. while(q.size())
  55. {
  56. long long u=q.top();
  57. q.pop();
  58. printf("%lld ",u);
  59. }
  60. return 0;
  61. }