Submission #766512

#TimeUsernameProblemLanguageResultExecution timeMemory
7665121neBali Sculptures (APIO15_sculpture)C++14
9 / 100
1081 ms59088 KiB
#include<bits/stdc++.h>
using namespace std; 
int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	long long n,a,b;cin>>n>>a>>b;
	vector<long long>arr(n);
	for (long long i = 0;i<n;++i){
		cin>>arr[i];
	}
	vector<long long>pref(n + 1,0);
	for (int i = 0;i<n;++i){
		pref[i + 1] = pref[i] + arr[i];
	}
	auto query = [&](int u,int v){
	  return pref[v + 1] - pref[u];
	};
	long long cur = 0;
	auto check = [&](long long v){
		vector<vector<int>>dp(n + 1);
		dp[0].push_back(0);
		for (int i = 0;i<n;++i){
			for (int x = i;x<n;++x){
				if (query(i,x) & v){
					continue;
				}
				for (auto y:dp[i]){
					if (y + 1 <= b)
						dp[x + 1].push_back(y + 1);
				}
			}
		}
		for (auto x:dp[n]){
			if (x >= a && x <= b)return 1;
		}
		return 0;
	};
	long long ans = 0;
	for (long long i = 43;i>=0;--i){
		if (check((cur ^ (1LL<<i)))){
			cur ^= (1LL<<i);
		}
		else{
			ans ^= (1LL<<i);
		}	
	}
	cout<<ans<<'\n';
	return 0;
}
#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...