Advertisement
Guest User

Untitled

a guest
Jul 21st, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.59 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. #include <fstream>
  4. using namespace std;
  5.  
  6. int f[300000/32], m[33];
  7.  
  8. void mask()
  9. { int i;
  10. m[0]=1;
  11. for ( i =1 ; i <= 33; ++i)
  12. m[i]=m[i-1]*2
  13. ;
  14.  
  15. }
  16.  
  17.  
  18. int main()
  19. { mask();
  20. int n ;
  21. int cat,rest,value;
  22. cin >> n ;
  23. int maxim=0;
  24. for ( int i = 1 ; i<= n ; ++i)
  25. {
  26. cin >> value;
  27. cat=value/32;
  28. rest=value%32;
  29. maxim=max(maxim,value);
  30. if (!(f[cat] & m[rest] ))
  31. f[cat] |= m[rest];
  32.  
  33. }
  34.  
  35. int i, j ;
  36. for ( i =0 ; i <= 300000/32 ; ++i)
  37. for ( j= 0 ; j <= 32 ; ++j)
  38. if(f[i] & m [j]) cout << i*32+j<<" ";
  39.  
  40.  
  41. return 0;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement