#include "bits/stdc++.h"
#define FOR(i,a,b)for(int i=(a);i<(b);i++)
#define F0R(i,a)FOR(i,0,a)
#define ROF(i,a,b)for(int i=(b)-1;i>=(a);i--)
#define R0F(i,a)ROF(i,0,a)
#define REP(a)F0R(_,a)
using namespace std;
const int mxl=45,mxm=2e3+20;
int y[mxm];
int main(){
int n,a,b;cin>>n>>a>>b;
FOR(i,1,n+1)cin>>y[i];
if(a==1){
long long fll=(1ll<<mxl)-1;
long long msk=fll;
R0F(i,mxl){
msk^=1ll<<i;
vector<vector<bool>>dp(n+1,vector<bool>(n+1,false));
dp[0][0]=true;
FOR(j,1,n+1){
long long s=0;
ROF(k,1,j+1){
s+=y[k];
FOR(l,1,k+1){
bool exp=(dp[k-1][l-1] and (s&msk)==s);
dp[j][l]=dp[j][l] or exp;
}
}
}
bool f=false;
FOR(j,a,b+1)if(dp[n][j]){
f=true;
break;
}
if(not f)msk^=1ll<<i;
}
cout<<msk<<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... |