fork download
  1. #include <stdio.h>
  2. #include <stdint.h>
  3. #include <limits.h>
  4.  
  5. #define push(a, b) *a = b; a++
  6. #define pop(a, b) a--; b = *a
  7.  
  8. #define bit1set(arr, a) arr[a / 8 ] |= 1 << ( a % 8 )
  9. #define bit0set(arr, a) arr[a / 8 ] &= ~ (1 << ( a % 8 ))
  10. #define bitinv(arr, a) arr[a / 8 ] ^= 1 << ( a % 8 )
  11. #define bitget(arr, a) ( ( arr[a / 8] >> (a % 8) ) & 1 )
  12.  
  13. unsigned char arr[125000] = {};
  14.  
  15. int main(void)
  16. {
  17. unsigned long long int a;
  18. char flag = 1;
  19. do
  20. {
  21. scanf("%lli",&a);
  22. if (a != -1)
  23. {
  24. bit1set(arr, a);
  25. }
  26. else break;
  27. } while (1);
  28.  
  29. do
  30. {
  31. scanf("%lli",&a);
  32. if (a != -1)
  33. {
  34. if ( 1 == bitget(arr, a) )
  35. {
  36. printf("%lli ",a);
  37. bit0set(arr, a);
  38. flag = 0;
  39. }
  40. }
  41. else break;
  42. } while (1);
  43. if (flag)
  44. printf("empty");
  45. return 0;
  46. }
  47.  
Success #stdin #stdout 0s 1956KB
stdin
6 7 8 1 2 3 -1
4 3 2 1 1 -1
stdout
3 2 1