This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
//LaziChicken - 9/2023
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define pii pair <int, int>
#define pll pair <ll, ll>
#define pli pair <ll, int>
#define pil pair <int, ll>
#define fi first
#define se second
#define dim 3
#define tii tuple <int, int, int>
#define inf 0x3f
const ll nx = 2e3+2;
const ll bx = 1e3+2;
const ll mod = 1e9+7;
//--------------------------------
int n, p, q;
ll a, sum[nx];
ll range(int l, int r){
return sum[r] - sum[l-1];
}
bool dp[102][102];
void sub4(){
ll res = (1LL << 37) - 1;
for (int bit = 36; bit >= 0; bit--){
res ^= (1LL << bit);
memset(dp, 0, sizeof(dp));
dp[0][0] = 1;
for (int i = 1; i <= n; i++){
for (int k = 1; k <= q; k++){
for (int j = 1; j <= i; j++){
if ((res | range(j, i)) == res){
dp[i][k] |= dp[j-1][k-1];
}
}
}
}
bool ok = 0;
for (int i = p; i <= q; i++){
ok |= dp[n][i];
}
if (!ok) res ^= (1LL << bit);
}
cout << res;
exit(0);
}
int f[nx];
void sub5(){
ll res = (1LL << 41) - 1;
for (int bit = 40; bit >= 0; bit--){
res ^= (1LL << bit);
memset(f, inf, sizeof(f));
f[0] = 0;
for (int i = 1; i <= n; i++){
for (int j = 1; j <= i; j++){
if ((range(j, i) | res) == res){
f[i] = min(f[i], f[j-1] + 1);
}
}
}
if (f[n] > q) res ^= (1LL << bit);
}
cout << res;
exit(0);
}
//--------------------------------
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin >> n >> p >> q;
for (int i = 1; i <= n; i++){
cin >> a;
sum[i] = sum[i-1] + a;
}
if (n <= 100) sub4();
else sub5();
}
/*
Note:
*/
| # | 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... |