Submission #1192248

#TimeUsernameProblemLanguageResultExecution timeMemory
1192248julia_08Bali Sculptures (APIO15_sculpture)C++20
71 / 100
27 ms484 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; const int MAXN = 110; int y[MAXN], dp[MAXN][MAXN]; ll s[MAXN]; int main(){ cin.tie(0)->sync_with_stdio(0); int n, a, b; cin >> n >> a >> b; for(int i=1; i<=n; i++){ cin >> y[i]; s[i] = s[i - 1] + y[i]; } ll ans = 0, bits = 0; for(int bit=40; bit>=0; bit--){ bits += (1LL << bit); for(int k=0; k<=n; k++){ for(int i=0; i<=n; i++){ dp[k][i] = 1; } } dp[0][0] = 0; for(int k=1; k<=n; k++){ for(int i=1; i<=n; i++){ for(int j=0; j<i; j++){ ll sum = s[i] - s[j]; if((sum & bits) != 0) continue; dp[k][i] &= dp[k - 1][j]; } } } bits -= (1LL << bit); bool ok = false; for(int k=a; k<=b; k++) if(!dp[k][n]) ok = true; if(ok){ bits += (1LL << bit); } else ans += (1LL << bit); } 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...