Submission #584724

#TimeUsernameProblemLanguageResultExecution timeMemory
584724sofapudenBali Sculptures (APIO15_sculpture)C++14
50 / 100
140 ms348 KiB
#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

const int mxN = 2e3+5;

ll n, a, b, v[mxN], pre[mxN]; 

bool g1(ll mask){
	vector<int> dp(n+1, mxN);
	dp[0] = 0;
	for(int i = 1; i <= n; ++i){
		for(int j = 0; j < i; ++j){
			if((mask|(pre[i]-pre[j])) == mask)dp[i] = min(dp[i],dp[j]+1);
		}
	}
	return dp[n] <= b;
}

bool g2(ll mask){

}

int main(){
	cin >> n >> a >> b;
	pre[0] = 0;
	for(int i = 1; i <= n; ++i)cin >> v[i], pre[i] = pre[i-1] + v[i];
	ll ans = (1ll<<50)-1;
	for(int i = 49; ~i; --i){
		if(a == 1 && g1(ans^(1ll<<i)))ans^=(1ll<<i);
		if(a > 1 && g2(ans^(1ll<<i)))ans^=(1ll<<i);
	}
	cout << ans << '\n';
}

Compilation message (stderr)

sculpture.cpp: In function 'bool g2(ll)':
sculpture.cpp:24:1: warning: no return statement in function returning non-void [-Wreturn-type]
   24 | }
      | ^
#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...