Submission #243329

#TimeUsernameProblemLanguageResultExecution timeMemory
243329Leonardo_PaesBali Sculptures (APIO15_sculpture)C++17
50 / 100
295 ms512 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; inline bool check(ll a, ll b){ return ((a&b) == a); } int32_t main(){ ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); int n, a, b; cin >> n >> a >> b; vector<int> v(n+1); for(int i=1; i<=n; i++) cin >> v[i]; if(a == 1){ vector<int> dp(n+1); // least k | it is possible to divide in k subarrays ll mask = ~(1LL<<63); for(int i=62; i>=0; i--){ dp[0] = 0; for(int x=1; x<=n; x++) dp[x] = n+1; for(int x=1; x<=n; x++){ ll sum = 0; for(int y=x; y>=1; y--){ sum += v[y]; if(check(sum, mask^(1LL<<i))) dp[x] = min(dp[x], 1 + dp[y-1]); } } if(dp[n] <= b) mask ^= (1LL<<i); } cout << mask << "\n"; } else{ } 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...