# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
25373 | 2017-06-21T18:52:17 Z | gabrielsimoes | Bali Sculptures (APIO15_sculpture) | C++14 | 3 ms | 9856 KB |
#include <bits/stdc++.h> using namespace std; typedef signed char sc; typedef long long ll; #define most(a) (sc(63 - __builtin_clzll(a))) #define cost(i, j) (most((v[j] - v[i-1])&(~x))) const int MAXN = 2001; const sc MAXLOG = 44; int N, A, B; ll v[MAXN]; ll x; bool ok[MAXN][MAXN]; sc dp[MAXN][MAXN]; sc f(int i, int g) { printf("x %lld dp %d %d\n", x, i, g); if (i == N+1) return g!=0?MAXLOG:-1; else if (g == 0) return MAXLOG; if (ok[i][g]) return dp[i][g]; ok[i][g] = 1; dp[i][g] = MAXLOG; for (int j = i; j <= N; j++) dp[i][g] = min(dp[i][g], max(cost(i, j), f(j+1, g-1))); return dp[i][g]; } int main() { scanf("%d %d %d", &N, &A, &B); for (int i = 1,a; i <= N; i++) scanf("%d", &a), v[i] = v[i-1] + a; ll ans = 0; sc lim = most(v[N]) + 1; x = (1LL << lim); while (lim > 0) { memset(ok, 0, sizeof(ok)); for (int i = A; i <= B; i++) lim = min(lim, f(1, i)); if (lim != -1) { x |= (1LL << lim); ans |= (1LL << lim); } } printf("%lld\n", ans); }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 9856 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 9856 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 9856 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 9856 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 9856 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |