Submission #1319296

#TimeUsernameProblemLanguageResultExecution timeMemory
1319296samarthkulkarniBali Sculptures (APIO15_sculpture)C++17
0 / 100
1 ms332 KiB
#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 = 21;
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 = 0; mask < (1 << n); mask++) {
		int val = __builtin_popcount(mask);
		if (val > B || val < A) continue;
		

		int s = 0;
		val = 0;

		for (int i = 0; i < n; i++) {
			val += a[i];
			if (mask&(1 << i)) {
				s = (s | val);
				val =  0;
			}
		}	

		s = (s | val);

		ans = min(ans, s);
	}

	cout << ans <<endl;

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...