Submission #754037

#TimeUsernameProblemLanguageResultExecution timeMemory
754037ZflopSecret (JOI14_secret)C++14
0 / 100
465 ms8256 KiB
#include "secret.h" const int NMAX = (int)1e3; int n; int prec[NMAX][NMAX]; void DC (int l,int r,int A[]){ int m = (l + r) / 2; prec[m][m] = A[m]; prec[m + 1][m + 1] = A[m + 1]; for (int i = m - 1; i >= l;--i) prec[m][i] = Secret(prec[m][i + 1],A[i]); for (int i = m + 2; i <= r;++i) prec[m + 1][i] = Secret(prec[m + 1][i - 1],A[i]); if(l < m) DC(l,m,A); if(m + 1 < r) DC(m + 1,r,A); } void Init(int N,int A[]){ n = N; DC(0,N - 1,A); } int Query(int L,int R){ int l = 0,r = n - 1; while(l != r){ int m = (l + r) / 2; if(L <= m && m < R) return Secret(prec[m][L],prec[m + 1][R]); if(R == m) return prec[m][L]; if(L > m) l = m + 1; else r = m; } return prec[l][l]; }
#Verdict Execution timeMemoryGrader output
Fetching results...