#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
template <typename T>
using ordered_set = tree<T, null_type, std::less<T>, rb_tree_tag, tree_order_statistics_node_update>;
using ll = long long;
#define vi vector<long long>
#define all(x) x.begin(), x.end()
#define endl "\n"
#define pr pair<ll, ll>
#define ff first
#define ss second
void solution();
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
solution();
return 0;
}
const int N = 22;
ll a[N];
ll n, A, B;
const int inf = INT_MAX;
void solution() {
cin >> n >> A >> B;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int ans = inf;
for (int mask = 1; mask < (1 << n); mask+=2) {
int val = __builtin_popcount(mask);
if (val > B || val < A) continue;
int s = 0;
val = 0;
for (int i = n-1; i >= 0; i--) {
val += a[n-i-1];
if (mask&(1 << i)) {
s = (s | val);
val = 0;
}
}
ans = min(ans, s);
}
cout << ans <<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... |