#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main()
{
int N, A, B;
cin >> N >> A >> B;
vector<ll> ages(N + 1);
for (int i = 1; i <= N; ++i)
cin >> ages[i];
ll mask = (1LL << 41) - 1;
vector<ll> L(N + 1), R(N + 1);
for (int bit = 40; bit >= 0; --bit)
{
mask ^= (1LL << bit);
for (int i = 1; i <= N; i++)
{
L[i] = 1e9, R[i] = -1e9;
ll s = 0;
for (int j = i - 1; j >= 0; j--)
{
s += ages[j + 1];
if ((s & mask) == s)
{
L[i] = min(L[i], L[j] + 1);
R[i] = max(R[i], R[j] + 1);
}
}
}
if (!(A <= R[N] && L[N] <= B))
{
mask ^= (1LL << bit);
}
}
cout << mask << endl;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |