fork download
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5. long long n,x;
  6.  
  7. scanf("%lld %lld",&n,&x);
  8. long long c, first,j, last, middle,search, array[n],count=0;
  9.  
  10. for (c = 0; c < n; c++)
  11. scanf("%lld",&array[c]);
  12.  
  13. for(j=0;j<n;j++){
  14. if(array[j]==-100)
  15. continue;
  16. search=array[j]^x;
  17.  
  18. first = 0;
  19. last = n - 1;
  20. middle = (first+last)/2;
  21.  
  22. while (first <= last) {
  23. if (array[middle] < search)
  24. first = middle + 1;
  25. else if (array[middle] == search) {
  26. count++;
  27. array[middle]=-100;
  28. break;
  29. }
  30. else
  31. last = middle - 1;
  32.  
  33. middle = (first + last)/2;
  34.  
  35. if (first > last)
  36. break;
  37. }
  38. }
  39. printf("%lld",count);
  40.  
  41. return 0;
  42. }
Success #stdin #stdout 0s 2172KB
stdin
2 3
1 2
stdout
1