Submission #1301947

#TimeUsernameProblemLanguageResultExecution timeMemory
1301947newsboySecret (JOI14_secret)C++20
100 / 100
338 ms8264 KiB
#include "secret.h" constexpr int V = 1E3; int f[V][V], n; void Divide(int l, int r, int A[]) { if (r - l == 1) { f[l][l] = A[l]; return; } int m = (l + r) / 2; f[m][m - 1] = A[m - 1]; for (int i = m - 2; i >= l; i--) { f[m][i] = Secret(A[i], f[m][i + 1]); } f[m][m] = A[m]; for (int i = m + 1; i < r; i++) { f[m][i] = Secret(f[m][i - 1], A[i]); } Divide(l, m, A); Divide(m, r, A); } void Init(int N, int A[]) { n = N; Divide(0, n, A); } int Query(int L, int R) { int a = 0, b = n; while (b - a > 1) { int m = (a + b) / 2; if (L < m && m <= R) { return Secret(f[m][L], f[m][R]); } if (L >= m) { a = m; } else { b = m; } } return f[a][a]; }
#Verdict Execution timeMemoryGrader output
Fetching results...