Submission #107959

#TimeUsernameProblemLanguageResultExecution timeMemory
107959dfistricBali Sculptures (APIO15_sculpture)C++14
21 / 100
11 ms384 KiB
#include <bits/stdc++.h> #define FOR(i, a, b) for (int i = (a); i < (b); i++) #define FORd(i, a, b) for (int i = (a); i >= (b); i--) #define REP(i, n) FOR(i, 0, n) #define ll long long using namespace std; const int MAXN = 2010; ll arr[MAXN], pref[MAXN]; int n, a, b; ll dp[MAXN], out = 0; ll val(ll sum) { return ((((1LL << 60) - 1) - out) & sum); } int solve(int x) { REP(i, n) { dp[i] = 1e9; if (val(pref[i]) < (1LL << x)) dp[i] = 1; REP(j, i) { if (val(pref[i] - pref[j]) < (1 << x)) dp[i] = min(dp[i], dp[j] + 1); } } return dp[n - 1]; } int main() { ios_base::sync_with_stdio(false); cin >> n >> a >> b; REP(i, n) cin >> arr[i]; REP(i, n) { pref[i] = arr[i]; if (i) pref[i] += pref[i - 1]; } FORd(i, 50, 0) { if (solve(i) > b) out |= (1LL << i); } cout << out << endl; 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...