#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int a[20020]; int dp[20020][1030]; int main() { int n; cin >> n; int sum = 0; for (int i = 1; i <= n; i++) { cin >> a[i]; sum += a[i]; } dp[0][0] = 1; for (int i = 1; i <= n; i++) { for (int j = 0; j < 1024; j++) { dp[i][(j & a[i])] += dp[i - 1][j]; dp[i][((j + a[i]) & 1023)] += dp[i - 1][j]; } } for (int i = 1; i <= n; i++) { set st; int co = 0; for (int j = 0; j < 1024; j++) { if (dp[i][j] != 0 && j + sum >= 1024) { st.insert(j + sum); } else if (dp[i][j] != 0) { co++; } } cout << co + st.size() << endl; } }