Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- int f[300000/32], m[33];
- void mask()
- { int i;
- m[0]=1;
- for ( i =1 ; i <= 33; ++i)
- m[i]=m[i-1]*2
- ;
- }
- int main()
- { mask();
- int n ;
- int cat,rest,value;
- cin >> n ;
- int maxim=0;
- for ( int i = 1 ; i<= n ; ++i)
- {
- cin >> value;
- cat=value/32;
- rest=value%32;
- maxim=max(maxim,value);
- if (!(f[cat] & m[rest] ))
- f[cat] |= m[rest];
- }
- int i, j ;
- for ( i =0 ; i <= 300000/32 ; ++i)
- for ( j= 0 ; j <= 32 ; ++j)
- if(f[i] & m [j]) cout << i*32+j<<" ";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement