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;
#define ll long long int
#define sz(x) (int)x.size()
#define ff first
#define ss second
const ll N = 300005;
const ll M = 1e9 + 7;
ll T, n, c[N], ans = 1e9, d[N], a, b;
void f(int x){
	if(x == n+1){
		ll y = 0, z = 0, cnt = 0;
		for(int i = 1; i <= n; i++){
			z += c[i];
			if(d[i] == 1){
				cnt++;
				y = (y|z);
				z = 0;
			}
		}
		if(z != 0) cnt++;
		y = (y|z);
		z = 0;
		if(cnt <= b and cnt >= a) ans = min(ans,y);
		return;
	}
	d[x] = 0;
	f(x+1);
	d[x] = 1;
	f(x+1);
}
int main(){
	ios::sync_with_stdio(false); cin.tie(0);
	cin >> n >> a >> b;
	for(int i = 1; i <= n; i++){
		cin >> c[i];
	}
	f(1);
	cout << ans;
	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... |