#pragma GCC optimize("O3")
#include <bits/stdc++.h>
#define ll long long
#define str string
#define pb push_back
#define pf push_front
#define in insert
#define all(v) v.begin(),v.end()
const ll sz=1000000,INF=1000000000000000000;
using namespace std;
void solve()
{
ll n,m,l,num,cnt,sum,Res,ans=INF;
cin>>n>>m>>l;
vector<ll>nums,res;
for(int i=0;i<n;i++)
{
cin>>num;
nums.pb(num);
}
for(int i=m-1;i<=l-1;i++)
{
res.clear();
for(int j=0;j<i;j++)
{
res.pb(1);
}
for(int j=0;j<=n-i-1;j++)
{
res.pb(0);
}
sort(all(res)),Res=0,sum=0;
for(int j=0;j<res.size();j++)
{
sum+=nums[j];
if(j<nums.size()-1 && res[j])
{
Res|=sum,sum=0;
}
}
Res|=sum,ans=min(ans,Res);
while(next_permutation(all(res)))
{
Res=0,sum=0;
for(int j=0;j<res.size();j++)
{
sum+=nums[j];
if(j<nums.size()-1 && res[j])
{
Res|=sum,sum=0;
}
}
Res|=sum,ans=min(ans,Res);
}
}
cout<<ans;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr),cout.tie(nullptr);
ll t=1;
//cin>>t;
while(t--)
{
solve();
}
}
| # | 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... |