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 <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<ll> vi;
typedef pair<ll,ll> ii;
typedef vector<ii> vii;
typedef long double lld;
#define rep(i,a,b) for(ll i = a; i < b; i++)
#define per(i,a,b) for(ll i = a; i >= b; i--)
#define sz(x) (ll)(x).size()
#define all(x) x.begin(),x.end()
#define inf 1000000000000000000
vi Y;
ll n,a,b;
ll cnt(ll m){
ll ans = 0;
while(m > 0){
ans += m%2;
m /= 2;
}
return ans;
}
int main(){
cin >> n >> a >> b;
Y.assign(n,0);
rep(i,0,n) cin >> Y[i];
if (n > 20) exit(0);
ll best = inf,cur;
rep(x,0,(1<<(n-1))){
ll X = cnt(x); X++;
cur = 0;
if (X > b || X < a) continue;
ll t = x,last = 0;
rep(i,1,n){
if (t%2){
ll temp = 0;
rep(j,last,i) temp += Y[j];
cur |= temp;
last = i;
}
t /= 2;
}
ll temp = 0;
rep(j,last,n) temp += Y[j];
cur |= temp;
best = min(best,cur);
}
cout << best << 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... |