//これ好き。N >= 16なら全部覆えるので65535、N < 16ならBitDPできる。 #include #define rep(i, n) for(i = 0; i < n; i++) using namespace std; int n; int a[200000]; bool dp[16][1 << 16]; int main() { int i, j, k; cin >> n; rep(i, n) cin >> a[i]; if (n >= 16) { cout << (1 << 16) - 1 << endl; return 0; } dp[0][0] = true; rep(i, n) { rep(j, (1 << 16)) { if (dp[i][j] == false) continue; int val = a[i]; rep(k, 16) { dp[i + 1][j | val] = true; val = (val >> 1) + (1 << 15) * (val % 2); } } } for (i = 65535; i >= 0; i--) if (dp[n][i]) break; cout << i << endl; return 0; }