fork download
  1. #pragma GCC optimize ("Ofast")
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4. inline int my_getchar_unlocked(){
  5. static char buf[1048576];
  6. static int s = 1048576;
  7. static int e = 1048576;
  8. if(s == e && e == 1048576){
  9. e = fread_unlocked(buf, 1, 1048576, stdin);
  10. s = 0;
  11. }
  12. if(s == e){
  13. return EOF;
  14. }
  15. return buf[s++];
  16. }
  17. inline void rd(int &x){
  18. int k;
  19. int m=0;
  20. x=0;
  21. for(;;){
  22. k = my_getchar_unlocked();
  23. if(k=='-'){
  24. m=1;
  25. break;
  26. }
  27. if('0'<=k&&k<='9'){
  28. x=k-'0';
  29. break;
  30. }
  31. }
  32. for(;;){
  33. k = my_getchar_unlocked();
  34. if(k<'0'||k>'9'){
  35. break;
  36. }
  37. x=x*10+k-'0';
  38. }
  39. if(m){
  40. x=-x;
  41. }
  42. }
  43. inline void rd(long long &x){
  44. int k;
  45. int m=0;
  46. x=0;
  47. for(;;){
  48. k = my_getchar_unlocked();
  49. if(k=='-'){
  50. m=1;
  51. break;
  52. }
  53. if('0'<=k&&k<='9'){
  54. x=k-'0';
  55. break;
  56. }
  57. }
  58. for(;;){
  59. k = my_getchar_unlocked();
  60. if(k<'0'||k>'9'){
  61. break;
  62. }
  63. x=x*10+k-'0';
  64. }
  65. if(m){
  66. x=-x;
  67. }
  68. }
  69. struct MY_WRITER{
  70. char buf[1048576];
  71. int s;
  72. int e;
  73. MY_WRITER(){
  74. s = 0;
  75. e = 1048576;
  76. }
  77. ~MY_WRITER(){
  78. if(s){
  79. fwrite_unlocked(buf, 1, s, stdout);
  80. }
  81. }
  82. }
  83. ;
  84. MY_WRITER MY_WRITER_VAR;
  85. void my_putchar_unlocked(int a){
  86. if(MY_WRITER_VAR.s == MY_WRITER_VAR.e){
  87. fwrite_unlocked(MY_WRITER_VAR.buf, 1, MY_WRITER_VAR.s, stdout);
  88. MY_WRITER_VAR.s = 0;
  89. }
  90. MY_WRITER_VAR.buf[MY_WRITER_VAR.s++] = a;
  91. }
  92. inline void wt_L(char a){
  93. my_putchar_unlocked(a);
  94. }
  95. inline void wt_L(const char c[]){
  96. int i=0;
  97. for(i=0;c[i]!='\0';i++){
  98. my_putchar_unlocked(c[i]);
  99. }
  100. }
  101. int N;
  102. long long A[3000];
  103. int main(){
  104. int i;
  105. long long x = 0;
  106. long long t;
  107. long long s;
  108. rd(N);
  109. {
  110. int Lj4PdHRW;
  111. for(Lj4PdHRW=(0);Lj4PdHRW<(N);Lj4PdHRW++){
  112. rd(A[Lj4PdHRW]);
  113. }
  114. }
  115. for(i=(0);i<(N);i++){
  116. x ^= A[i];
  117. }
  118. for(i=(0);i<(N);i++){
  119. int j;
  120. for(j=(i+1);j<(N);j++){
  121. t = (x ^ A[i] ^ A[j]);
  122. s = A[i] + A[j];
  123. if( (s-t)%2 == 0 && (((s-t)/2) & t) == 0 ){
  124. wt_L("Yes");
  125. wt_L('\n');
  126. return 0;
  127. }
  128. }
  129. }
  130. wt_L("No");
  131. wt_L('\n');
  132. return 0;
  133. }
  134. // cLay version 20201123-1
  135.  
  136. // --- original code ---
  137. // int N; ll A[3000];
  138. // {
  139. // ll x = 0, t, s;
  140. // rd(N,A(N));
  141. // rep(i,N) x ^= A[i];
  142. // rep(i,N) rep(j,i+1,N){
  143. // t = (x ^ A[i] ^ A[j]);
  144. // s = A[i] + A[j];
  145. // if( (s-t)%2 == 0 && (((s-t)/2) & t) == 0 ) wt("Yes"), return 0;
  146. // }
  147. // wt("No");
  148. // }
  149.  
Time limit exceeded #stdin #stdout 5s 4320KB
stdin
Standard input is empty
stdout
Standard output is empty