Submission #1207471

#TimeUsernameProblemLanguageResultExecution timeMemory
1207471jahongirSecret (JOI14_secret)C++20
100 / 100
343 ms8308 KiB
#include <bits/stdc++.h> #include "secret.h" using namespace std; int dp[1010][1010], n; void daq(int l, int r, int A[]){ int m = (l+r)>>1; dp[m][m] = A[m]; dp[m+1][m+1] = A[m+1]; for(int i = m+2; i <= r; i++) dp[m+1][i] = Secret(dp[m+1][i-1],A[i]); for(int i = m-1; i >= l; i--) dp[i][m] = Secret(A[i],dp[i+1][m]); if(l < m) daq(l,m,A); if(r > m+1) daq(m+1,r,A); } void Init(int N, int A[]) { n = N; daq(0,n-1,A); } int Query(int L, int R) { int l = 0, r = n-1; while(l!=r){ int m = (l+r)>>1; if(m >= L && m < R) return Secret(dp[L][m],dp[m+1][R]); if(m==R) return dp[L][m]; if(m < L) l = m+1; else r = m; } return dp[l][r]; }
#Verdict Execution timeMemoryGrader output
Fetching results...