This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll PW = 43;
const int N = 110;
int f[N][N], a[N], n, A, B;
ll res, bad;
bool ok(){
for (int i = 0; i <= n; i++)
for (int j = 0; j <= B; j++)
f[i][j] = 0;
f[0][0] = 1;
for (int j = 1; j <= B; j++)
for (int i = 1; i <= n; i++) {
if (!f[i - 1][j - 1]) continue;
ll sum = 0;
for (int ii = i; ii <= n; ii++){
sum += a[ii];
if ((sum & bad) == 0)
f[ii][j] = 1;
}
}
for (int j = A; j <= B; j++)
if (f[n][j])
return 1;
return 0;
}
int main(){
ios_base::sync_with_stdio(0); cin.tie(0);
// freopen("in.txt","r",stdin);
cin >> n >> A >> B;
for (int i = 1; i <= n; i++)
cin >> a[i];
res = (1ll << PW) - 1;
for (ll po = PW - 1; po >= 0; po--) {
bad ^= (1ll << po);
if (ok())
res ^= (1ll << po);
else bad ^= (1ll << po);
}
cout << res;
return 0;
}
# | 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... |