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 <iostream>
#include <set>
#include <algorithm>
#include <vector>
using namespace std;
#define ll long long
const ll inf=1e18;
ll aps[10000];
int main()
{
int n,a,b;
cin>>n>>a>>b;
for(int i=0;i<n;i++)
cin>>aps[i];
// long long ans=inf;
ll ans=inf;
ll cur=0;
for(int i=0;i<n;i++)
{
cur+=aps[i];
ll _or=cur;
ll len=0;
ll cp=0;
ll ro=1;
bool pos=1;
for(int j=i+1;pos and j<n;j++)
{
cp+=aps[j];
len++;
for(int jp=20;jp>=0;jp--)
{
if((cp&(1<<jp))>(cur&(1<<jp)))
{
// We can not add a[j] to cp so we stop
cp-=aps[j];
len--;
_or=(_or|cp);
if(len==0)
{
pos=0;
break;
}
ro++;
cp=aps[j];
len=1;
}
}
}
if(len!=0)
{
ro++;
}
if(a<=ro and ro<=b and pos)
{
ans=min(ans,_or);
}
}
cout<<ans<<endl;
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... |