#include #include #include #include #include #include #include using namespace std; #define x first #define y second #define NMAX 2000005 #define INF 1000000007 int mymap[NMAX], n, v[NMAX], answer; int main (){ scanf("%d",&n); for(int i = 1; i <= n; i++) { scanf("%d",&v[i]); } sort(v + 1, v + n + 1); vector F; F.push_back(0); int nr = 1; for(int i = 1; i <= n; i++) { if(mymap[v[i]]) continue; //printf("elem %d\n", v[i]); answer++; for(int j = 0; j < nr; j++){ int val = (F[j] | v[i]); if(!mymap[val]){ mymap[val] = 1; F.push_back(val); nr++; //printf("am adaugat %d\n", val); } } } printf("%d\n", answer); return 0; }