#include #include constexpr int BITS = 64; void get_ones(std::vector& ones){ unsigned long long num; std::cin >> num; int i = 0; while (num){ ones[i] += num & 1; num >>= 1; i++; } } int main() { int n = 0; std::cin >> n; std::vector ones(BITS); for (int i = 0; i < n; i++){ get_ones(ones); } bool pr = false; unsigned long long mask = 1; unsigned long long num = 0; bool set = false; for (int i = 0; i < BITS; i++){ set = false; if (ones[i] >= 2) { pr = true; set = true; } else if (ones[i] == 1 && pr){ pr = true; set = true; } else if (ones[i] == 0 && pr){ set = true; pr = false; } else if (ones[i] > 0){ set = true; } if (set) { num |= mask; } mask <<= 1; } std::cout << num << '\n'; //for (auto& one: ones){ // std::cout << one; //} //std::cout << '\n'; return 0; }