#include <bits/stdc++.h>
using namespace std;
#define int long long
const int MAXN = 105;
int dp[MAXN], v[MAXN], ban[50];
bool ok(int x){
for(int i = 0; i <= 45; i++)
if( ( x &(1LL<<i)) && ban[i] )return false;
return true;
}
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n,a,b; cin>>n>>a>>b;
for(int i = 1; i <= n; i++)cin>>v[i];
dp[n+1] = 0;
int ans = 0;
for(int bit = 45; bit >= 0; bit--){
ban[bit] = 1;
for(int i = n; i >= 1; i--){
dp[i] = n+1;
int sum = 0;
for(int j = i+1; j <= n+1; j++){
sum += v[j-1];
if(ok(sum))dp[i] = min(dp[i], dp[j]+1);
}
}
if(dp[1] > b){
ban[bit] = 0;
ans += (1LL<<bit);
}
}
cout<<ans<<"\n";
}
# | 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... |