Submission #48154

#TimeUsernameProblemLanguageResultExecution timeMemory
48154square1001Bali Sculptures (APIO15_sculpture)C++14
100 / 100
601 ms1160 KiB
#include <bitset>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
	int N, A, B;
	cin >> N >> A >> B;
	vector<int> v(N);
	for (int i = 0; i < N; i++) cin >> v[i];
	long long ret = 0;
	for (int i = 40; i >= 0; i--) {
		vector<bitset<2001> > dp(N + 1);
		dp[0] = 1;
		for (int j = 1; j <= N; j++) {
			long long cur = 0;
			for (int k = j - 1; k >= 0; k--) {
				cur += v[k];
				if (((cur >> (i + 1)) | ret) == ret && !((cur >> i) & 1)) {
					dp[j] |= dp[k] << 1;
				}
			}
		}
		bool ok = false;
		for (int j = A; j <= B; j++) {
			ok = ok || dp[N][j];
		}
		ret <<= 1;
		if (!ok) ret++;
	}
	cout << ret << '\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...